Android - Activity 篇一

在 android 中,Activity 拥有四种基本状态:
1.Active/Runing一个新 Activity 启动入栈后,它在屏幕最前端,处于栈的最顶端,此时它处于可见并可和用户交互的激活状态。
2.Paused 当 Activity 被另一个透明或者 Dialog 样式的 Activity 覆盖时的状态。此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。
3.Stoped 当 Activity 被另外一个 Activity 覆盖、失去焦点并不可见时处于 Stoped状态。
4.Killed Activity 被系统杀死回收或者没有被启动时处于 Killed状态。

当一个 Activity 实例被创建、销毁或者启动另外一个 Activity 时,它在这四种状态之间进行转换,这种转换的发生依赖于用户程序的动作。
生命周期:
onCreate:在这里创建界面,做一些数据的初始化工作。
onStart:到这一步变成用户可见不可交互的。
onResume:变成用户可交互的(在Activity 栈系统通过栈的方式管理这些个Activity的最上面,运行完弹出栈,则回到上一个Activity)
onPause:到这一步是可见但不可交互的,系统会停止动画等消耗CPU的事情,从上文的描述已经知道,应该在这里保存你的一些数据,因为这个时候你的程序优先级降低,有可能被 系统收回。在这里保存的数据,应该在onResume里读出来,注意:这个方法里做的事情要短,因为下一个Activity不会等到这个方法完成才启动。
onStop:变得不可见,被下一个Activity覆盖,
onDestroy:这是Activity被干掉前最后一个被调用的方法了,可能是外面类调用finish方法或是系统为了节省空间将它暂时性的干掉,可以用IsFinish()来判断它,如果你有一个ProgressDialo在线程中转动,请在onDestroy里把cancel掉,不然线程结束的时候,调用Dialog的cancel方法会抛出异常的。
onPause,onStop,onDestroy三种状态下Activity都有可能被系统干掉。


猜你喜欢

转载自jimshuang.iteye.com/blog/1893956