应用程序的生命周期
1 应用程序的生命周期
一个应用程序程序运行在一个独立的Linux进程中,当一个应用程序需要运行某段代码时,应用程序所在的进程将被创建,并一直运行到不再需要该应用程序时为止。或为了运行其他应用程序,不得不中止该进程以便释放内存时为止。
应用程序进程创建到结束的全过程就是应用程序的生命周期。应用程序进程的生命周期不是由进程自己控制的,而是由系统决定。影响应用程序主要因素包括:该进程对于用户的重要性,以及当前系统中还剩下多少可用内存。
Android系统当中的5种类别进程:
1 前台进程:运行在屏幕最前端、与用户交互的Activity进程,或是运行的BroadcastReceiver的onReceive()方法的进程。
2 可见进程:是对用户可见,但并不是显示在屏幕最前端的进程。例如:可见进程的窗口上面出现悬浮的可前台进程。
3 服务进程:是拥有Service的进程,该Service由startService()方法启动。
4 后台进程:是拥有不被用户可见的Activity(onStop()方法被调用时)的进程。这些进程不会直接影响用户体验。
5 空进程:是不持有任何Activity的进程。提供缓存机制,为下次启动应用程序缩短时间。
2 Activity的生命周期
2.1 Activity的状态
Activity的创建到关闭,在经历下面4种状态。
活跃:Activity位于栈的顶部,界面处于屏幕最前端。
暂停:在悬浮层下失去焦点。
结束:在用户界面上不可见。
已被销毁或未启动:当Activity彻底结束或关闭后,从栈中移除。
2.2 生命周期
Activity当中的7个方法代表其内部的7种状态,分别为:onCreate、onStart、onResume、onPause、onStop、onDestroy、onRestart。这7种状态可以规纳为三组。
Activity完整的生命周期:从调用onCreate()创建Activity到最终调用onDestroy()回收Activity的过程。onCreate()方法用于初始化Activity,填充界面,为界面控制分配数据,创建服务和线程。onCreate()方法的参数Bundle对象包含了上次在onSaveInstanceState()调用时保持的用户界面信息,正确使用Bundle参数可以恢复上一次用户界面的状态。onDestroy()可以清除onCreate()调用时所创建的资源。通常,在onDestory()中我们需要确保外部资源的链接已经被关闭,比如网络链接、数据连接等。
可见Activity的生命周期:指onStart()/onRestart()开始到onStop()结束的这段过程。onStop()方法中,我们应该暂停或结束动画、线程、定时器、服务等这些用来更新界面的资源。
活跃Activity的生命周期:从onResume()到onPause()的过程,这期间用户可以看到Activity,还可以通过屏幕获得屏幕输入焦点。