(android学习笔记二)Acitivity的生命周期
Activity的生命周期
?
(一)activity主要有三个状态:
?
?? ? ? 1、你完全看见它(即当前屏幕)。 当在屏幕前台时(位于当前任务堆栈的顶部),它是活跃或运行的状态。它就是相应用户操作的activity。?
?? ? 2、它站在第二排,你只能看到它的一部分。当它失去焦点但仍然对用户可见时,它处于暂停状态。即是:在它之上有另外一个activity。这个activity也许是透明的,或者未能完全遮蔽全屏,所以被暂停的activity仍对用户可见。暂停的activity仍然是存活状态(它保留着所有的状态和成员信息并连接至窗口管理器),但当系统处于极低内存的情况下,仍然可以杀死这 个activity。
?? ? 3、你完全看不见它。 如果它完全被另一个activity覆盖是,它处于停止状态。它仍然保留所有的状态和成员信息。然而它不在为用户可见,所以它的窗口将被隐藏,如果其它地方需要内存,则系统经常会杀死这个activity。
?????? 总之:如果一个activity处于暂停或停止状态,系统可以通过要求它结束(调用它的?finish()?方法)或直接杀死它的进程来将它驱出内存。当它再次为用户可见的时候,它只能完全重新启动并恢复至以前的状态。
?
(二)activity的7个生命周期方法
?
??????? ?? 1、onCreate
???????? 2、onStart
???????? 3、onResume
???????? 4、onPause
???????? 5、onStop
???????? 6、onRestart
???????? 7、onDestroy
?
(三)生命周期阶段
?
1、开始Activity——进入第一个状态
??? 这个阶段依次执行了3个生命周期方法——onCreate、onStart和onResume。
2、Activity失去焦点——处于第一个状态,进入第二、三个状态
??? 这个阶段依次执行了2个生命周期方法——onPause、(onPause之后,系统会问:Activity仍然还没有获取焦点么?回答:是)onStop。(回答:否,查看下面内容)
3、关闭Activity——处于第一个状态,被关闭。处于第二、三状态被关闭
??? 处于第一个状态、被关闭:这个阶段依次执行了三个生命周期方法——onPause、onStop、onDestory。
??? 处于第二、三状态被关闭:这个阶段直接执行onDestory
4、重新获取焦点——处于第二、三状态,进入第一状态
??? 这个阶段依次执行了三个生命周期方法——onRestart、onStart和onResume。
———————————————上面是基本4个阶段————————————
——————————————下面是一个变态复杂阶段———————————
1、在上述第2条中(回答:否)
???? onPause之后运行:onResume方法,进入第一个状态
总结:
1、整体生命周期:onCreate、onStart、onResume、(Activity失去焦点)onPause、(Activity仍然没有获取焦点)onStop、(Acivity没有重新获取焦点)onDestory(或者,其他应用程序占用内容,直接finish掉)
2、焦点生命周期:
???? onPause之后,Activity重新获取焦点,则进入onResume方法。
???? onStop之后,Activity重新获取焦点,则onRestart、再onStart。
3、生命周期有两层循环:从onPause回到onResume,从onStop回到onStart
?
参考资料:
?1、Android/OPhone开发完全讲义
?2、Android---Activity生命周期状态
???????? http://www.cnblogs.com/sardine/archive/2010/09/26/1835290.html
?
?
?
?
?