Activity生命周期
理解Activity的生命周期对应用程序开发来说是至关重要的,这样才能确保您的应用提供了一个很好的用户体验和妥善管理其资源。由于OPhone应用程序不控制自己的进程寿命,由OPhoneRuntime管理每个应用程序进程,但是每个Activity的状态反过来会影响到OPhone Runtime是否将终止当前Activity和还是让它继续运行。
Actvity 堆栈
每个Actvity的状态由它所在Activity栈中的位置所决定,所有当前正在运行的Actvity将遵循照后进先出的原则。当一个新的 Activity启动,当前的Activity将移至堆栈的顶部,如果用户使用Back按钮,或在前台Activity被关闭,下一个Activity将被激活并且移至到堆栈的顶部。这个过程如下图所示
<img width="453" height="348" src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/01/clip_image002.jpg" <="" span="">real_src="http://dev.10086.cn/cmdn/wiki/uploads/201006/1276588511PaeN4NtM.png"title=activity真正的生命周期action-data="http%3A%2F%2Fdev.10086.cn%2Fcmdn%2Fwiki%2Fuploads%2F201006%2F1276588511PaeN4NtM.png"action-type=show-slide v:shapes="_x0000_i1025">
Activity状态
随着Activity的创建和销毁,也就会进出栈如上图所示,其中可能会经历以下四种状态:
· Active状态:这时候Activity处于栈顶,且是可见的,有焦点的,能够接收用户输入前景Activity。OPhone Runtime将试图不惜一切代价保持它活着,甚至杀死其他Activity以确保它有它所需的资源。当另一个Activity变成Active时,当前的将变成Paused状态。
· Paused状态:在某些情况下,你的Activity是可见的,但没有焦点,在这时候,Actvity处于Paused状态。例如,如果有一个透明或非全屏幕上的Activity在你的Actvity上面,你的 Activity将。当处于Paused状态时,该Actvity仍被认为是Active的,但是它不接受用户输入事件。在极端情况下,OPhone Runtime将杀死PausedActivity,以进一步回收资源。当一个Actvity完全被遮住时,它将进入Stopped