今天突然就不想写了,但是我要坚持啊,接下来了解下Android应用程序的生命周期
什么是Android应用程序的生命周期
生命周期从字面理解就是创建到销毁的过程。与大部分传统的应用程序平台不同,Android 应用程序不能控制它们自己的应用的周期
(就是这么的悲催,我自己的生命周期我都控制不了。andorid君在哭泣)。
Android 应用程序控件必须监听应用程序的状态变化并做出适当的反应,而且特别注意随时被终止的准备。
Android 会主动管理它的资源,它会采取任何措施来保证稳定流畅的用户体验。这就意味着在必须要的时候,
进程(以及它们的应用程序)有时候会在没有警告的情况下被终止,这样就可以为高优先级的应用程序释放资源。
应用程序的优先级和进程状态
Android 回收资源的时候,进程被终止的顺序是由它们的应用程序的优先级所决定的。应用程序的优先级等同于他的优先级最高的组件的优先级。
如果一样的优先级呢? 在较低优先级状态运行时间最长的线程将会首先被终止。进程的优先级也收到进程间依赖性的影响。
如果一个应用程序依赖于第二个应用程序所提供的Service或者Content Provicer,那么第二个应用程序至少会拥有与它所支持的这个应用程序相同的优先级。
前台进程
又称活动进程指的是那些有组件正和用户进行交互的应用程序的进程。前台进程是Android尝试回收其他应用程序资源来保持的进程,前台进程的数量非常的少,除非到了山穷水尽否则不会终止前台进程。前台进程包括:
1. 处于活动状态的Activity。
2. 正在执行onReceive事件处理程序的Broadcast Receiver。
3. 正在执行哦onCreate,onStart或者onDestory事件处理程序的Service。
4. 正在运行被标记为前台运行的Service。
可见进程
可见进程指的是那些对于用户可见,但是不显示在屏幕最前端的进程。通常不会被系统终止,除非处于弃车保帅的地步,为了前台进程能正常运行才会被终止。1. 有一个非前台但是仍然对用户可见的Activity。就是暂停状态的Activity(不知道暂停状态Activity点这里http://blog.csdn.net/zqingyang521/article/details/40504389) 2. 绑定Activity的Service。
服务进程
服务进程指的是启动的Service进程,因为Service没有直接和用户交互,所以优先级比可见进程和前台进程低一些。除非前台进程或者可见进程需要资源,否者不会终止服务进程。
后台进程
后台进程指的不可见的Activity的进程(停止状态activity)。通常系统中有很多不可见的进程在运行,这些都保存在LRU(least last used)列表中,android将使用"用户第一个看到,最后被终止。用户最后看到,第一个被终止"的方式终止它们,从而为前台进程提供资源。
空进程
为了提高系统整体性能,Android经常在应用程序的生存期结束之后仍然把它们保存在内存中。Android通过维护这个缓存来减少应用程序被再次启动时的启动时间。系统会经常的终止空进程,从而达到调节应用缓存和系统缓存的平衡。