读书人

(android学习札记二)Acitivity的生命

发布时间: 2012-08-22 09:50:35 作者: rapoo

(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

?

?

?

?

?

读书人网 >Android

热点推荐