各种情形下activity生命周期转换

1 home键
按下 onPause - onStop
返回 onRestart - onStart - onResume
2 锁屏
锁屏 onPause - onStop
解锁 onRestart - onStart - onResume

home键和锁屏虽然生命周期相同,但是触发流程不一样,home键走的正常的home activity(launcher)切换流程,栈顶activity被切换,而锁屏走的handleSleep流程,这个时候栈顶activity还是该activity

3 dialog弹出
普通AlertDialog弹出,不会发生activity声明周期变化,因为dialog和activity属于从属关系,使用的同一个apptoken,因此可交互和可见性都不会发生变化,也就不会因此生命周期变化

4 透明样式或者dialog样式的activity启动
onPause(A) - onCreate(B) - onStart(B) - onResume(B)
注意点在于Activity A不会执行onStop,因为如果A的可见性没有变化,也就是没有被完成遮挡的话,这个时候只是不在前台,不能和用户交互,所以只会执行onPause,而不会执行onStop方法。

5 进程被杀死
当activity所在进程被杀死的话,activity的onStop、onDestroy不会被执行,新的activity启动的时候,执行的是onCreate - - onStart - onRestoreInstanceState - onResume

6 Configuration变化导致activity重启
onPause - onSaveIntanceState - onStop - onDestroy - onCreate - - onStart - onRestoreInstanceState- onResume



猜你喜欢

转载自blog.csdn.net/xuning2516/article/details/79942741