转载请注明出处:http://blog.csdn.net/js331455217/article/details/40911595#t3
Android生命周期-初识
Activity是整个Android应用程序生命周期的重要组成部分。同时,Activity具备自身的生命周期。Android系统是通过树形结构管理Activity,同时Android系统提供了一个ActivityManager管理器管理Activity。Android系统提供一个专用的堆栈管理Activity的创建、运行和销毁。
下图是Activity整个生命周期图:
Activity生命周期状态如下:
1. 正常启动Activity,Activity回调函数执行顺序如下:
onCreate()--- >onStart()--- >onResume()
这个Activity是第一个被添加进入堆栈,此时,它处于栈顶
2. 正常结束Activity生命周期,Activity回调函数执行顺序如下:
onPause()--- >onStop() --- >onDestroy()
它被堆栈移除
3. 从当前Activity跳转到另一个Activity时,Activity回调函数执行顺序如下:
当前Activity(MainActiivty):onPause()--->onStop()
目标Activity(SecondActivity):onCreate--->onStart() --- >onResume()
当前Activity被放到栈底,目标Activity被放在栈顶
4. 从第二个Actvity回退到第一个Activity(MainActivity)时,Activity回到函数执行顺序如下:
第二个Activity(SecondActivity):onPause()--->onStop()--- >onDestroy()
主Activity(MainActivity):onRestart()--->onStart() --- >onResume()
SecondActiivty被移出堆栈,MainActivity被移到栈顶
Activity类似情况,以此类推。
从上面日志可以知道,一个Activity基本有4种状态:
1.一个Activity在屏幕顶部(也就是我们现在当前见到的界面),指明它是出于激活状态或者正在运行状态;
2.Activity整个界面是失去焦点,但是,它还是处于可见状态(即onPause状态)。
此时它依然与窗口管理器保持连接,系统继续维护其内部状态,所以它仍然可见,但它已经失去了焦点故不可与用户交互。但是,当系统内存极度紧张时,这个Activity有可能被系统杀死
3.一个Activity完全被其它Activity遮挡时(即onStop状态),它仍然保留着Activity所有状态和信息。然而,用户不能够看见它显示的界面和它的界面窗口被隐藏。当系统需要内存时,在这个状态的Activity经常被系统杀死
4.如果一个Activity处于onPause()或onStop状态时,系统需要内存时,系统能够终止这个Activity。
测试源码下载路径:http://download.csdn.net/detail/js331455217/8134217