android 7个生命周期方法分别在4个阶段按一定的顺序进行调用
2014-01-09 11:35
239 查看
android 7个生命周期方法分别在4个阶段按一定的顺序进行调用
4个阶段如下:1.开始Activity:在这个阶段依次执行3个生命周期方法,分别是onCreate、onStart和onResume。
2.Activity失去焦点:如果在Activity获得焦点的情况下进行其他的Activity或应用程序,当前Activity会失去焦点,在这一阶段会依次执行onPause和onStop方法
3.Activity重新获得焦点:如果activity重新获得焦点,会依次执行3个生命周期方法,分别是onRestart、onStart和onResume
4.关闭Activity:当activity被关闭时,系统会依次执行3个生命周期方法,分别是onPause、onStop和onDestroy。
如果在这4个阶段执行生命周期方法的过程中不会发生状态的改变,系统会按照上面的描述依次执行这4个阶段中的生命周期方法,但如果在执行过程中改变了状态,系统会按照更复杂的方式调用生命周期方法。
在执行的过程中可以改变系统的执行轨迹的生命周期方法是onPause和onStop。如果在执行onPause方法的过程中Activity重新获得了焦点,然后又失去了焦点,系统将不会在执行onStop方法,而是按照如下的顺序执行相应的生命周期方法:
onPause-->onResume-->onPause
如果在执行onStop方法的过程中Activity重新获得了焦点,然后又失去了焦点,系统将不会执行onDestroy方法,而是按照如下执行顺序执行相应的生命周期方法
onStop-->onRestart-->onStart-->onResume-->onPause-->onStop
如图所示Activity生命周期不难看出,在这个图中包含了二层循环,第一层循环是onPause-->onResume-->onPause,
第二层循环是:onStop-->onRestart-->onStart-->onResume-->onPause-->onStop.
我们可以将这二层循环看成是整个Activity生命周期中的子生命周期。第一层循环称为焦点生命周期,第二层循环视为可视生命周期。也就是说,第一层循环是activity焦点的获得与失去的过程中循环,在这一过程中,Activity始终是可见的。第二层循环是在Activity可见于不可见的过程中循环,在这个过程中伴随着Activity焦点的获得与失去,也就是说,Activity首先会被显示,然后会获得焦点,接着失去焦点,最后由于弹出其他Activity,使当前的Activity变成不可以见。因此,Activity有如下3种生命周期
整体生命周期:onCreate-->....-->onDestroy
可视生命周期:onStart-->...-->onStop
焦点生命周期: onResume-->onPause
相关文章推荐
- 关于Android Fragment生命周期以及其他方法的调用执行顺序问题
- 面试问题 activity生命周期,当设备旋转时android生命周期方法的调用顺序
- Android之Activity界面跳转--生命周期方法调用顺序
- UIViewController生命周期及方法调用顺序
- Android之Servic的生命周期和调用方法
- android手机屏幕横竖屏切换禁止调用生命周期函数方法
- android中Activity的生命周期各回调函数的调用顺序学习心得
- Android之Servic的生命周期和调用方法
- 在一个源文件中编写4个类Hello、A、B和C,主方法包含在类Hello中,类A、B、C中各包含一个静态和非静态方法,在类Hello的主方法中分别调用类A、B、C中的方法。
- Android多个Activity切换时其生命周期中的方法执行顺序
- android 调用前摄像头进行拍照的方法及完整例子
- Android多个Activity切换时其生命周期中的方法执行顺序
- android横竖屏切换的生命周期和调用方法
- Android中js与本地方法进行相互调用
- android不用另建工程进行单元测试及改变测试方法执行顺序
- Android之Servic的生命周期和调用方法
- 关于Android生命周期方法调用return的问题
- Android逆向之旅---某直播APP的协议加密原理分析以及调用加密方法进行协议参数构造
- Android界面之----自定义的Dialog,然后利用回调方法,在调用处,进行Dialog中各按钮的事件处理。
- [Android][清水笔记]多个Activity跳转时其状态方法的调用顺序