Activity 生命周期
2015年10月23日 周五 16:31:16
Activity 的 launchmode 为默认值。
1.桌面图标启动 App,按 Back 键返回:
onCreate()
onStart()
onResume()
【Back键按下】
onPause()
onStop()
onDestroy()
2.长按 Home 按键,从最近程序中点击图标进入:
与情况1相同。
onCreate()
onStart()
onResume()
3.启动App,按 Home 按键,然后再点击图标进入:
1.按下 Home 键长时间不进入 App,会先执行 onPause(),过会执行onSaveInstanceState(),onStop()
【Home键按下】
onPause()
onSaveInstanceState()
onStop()
【再次进入App】
onRestart()
onStart()
onResume()
2.按完 Home 键,快速点击图标进入 App。
【Home键按下】
onPause()
【再次快速进入 App】
onResume()
4.新启动 Activity 全部覆盖,back 退出新 Activity:
【启动 Activity1】
A1 onCreate()
A1 onStart()
A1 onResume()
【再跳转到 Activity2】
A1 onPause()
A2 onCreate()
A2 onStart()
A2 onResume()
A1 onSaveInstanceState()
A1 onStop()
【再从 Activity2 Back】
A2 onPause()
A1 onRestart()
A1 onStart()
A1 onResume()
A2 onStop()
A2 onDestroy()
【再从Activity1 Back】
A1 onPause()
A1 onStop()
A1 onDestroy()
5.新 Activity 部分覆盖,back 退出新 Activity
A1 onCreate()
A1 onStart()
A1 onResume()
【启动A2】
A1 onPause()
A2 onCreate()
A2 onStart()
A2 onResume()
【从A2Back】
A2 onPause()
A1 onActivityResult()
A1 onResume()
A2 onStop()
A2 onDestroy()
6.普通Dialog部分覆盖:
同AlertDialog
7.AlertDialog部分覆盖:
onCreate()
onStart()
onResume()
【显示AlertDialog】
【关闭AlertDilaog】
在AlertDialog出现以及消失的过程中,没有触发任何onXXX事件。
8.来电覆盖:
等同新 Activity 全覆盖
9.桌面控件intent启动:
9.1.目标Activity未启动:
等同桌面图标直接启动,会直接启动一个新Activity。
9.2.目标Activity已经启动并且在最上层
如果目标Activity是由桌面控件触发的,那么等同情况3,不会创建新Activity。
如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。
9.3.目标Activity已经启动但是不在最上层
如果目标Activity是由桌面控件启动的,那么不会创建新Activity,但也不会把目标Activity提到最上层。
如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。