官方生命周期图
单个Activity场景(9个场景)
场景1:打开一个新的Activity
onCreate() -> onStart() -> onResume()
场景2: 关闭一个Activity
onPause()->onStop()->onDestroy()
场景3:在当前Activity下,按下HOME键
onPause()->onStop()
场景4:已经按下HOME键的Activity,再点击Launcher上的App图标
onRestart() -> onStart()->onResume()
场景5:已经HOME键后的Activity,通过Menu键从进程列表中,再次打开该App
onRestart() -> onStart() -> onResume()
场景6:在当前Activity下,按下power键锁屏
onPause->onStop()
场景7:当前Activity位于前台,按下power键将屏幕点亮
onRestart()->onStart()->onResume()
场景8:Activity已经在前台运行,通知栏下拉Notification打开其它app
onPause()->onStop()
场景9:在其它App,再切换回上一个应用正在运行的Activity中
onRestart()->onstart()->onResume()
多个Activity场景(8个场景)
场景1:打开第一个MainActivity,再打开另外一个SubActivity,MainActivity的界面完全被SubActivity遮挡住
MainActivity onPause()->SubActivity onCreate() ->SubActivity的Activity onStart()-> SubActivity的Activity onResume() -> MainActivity onStop()
场景2:关闭SubActivity,MainActivity展示给用户
SubActivity onPause()->MainActivity onRestart() -> MainActivity onStart() - >MainActivity onResume()->SubActivity onStop()->SubActivity onDestroy()
场景3:已经打开第一个MainActivity,再打开第二个Dialog式的SubActivity,此时第二个SubActivity遮挡住第一个MainActivity的部门界面
MainActivity onPause() ->SubActivity onCreate(Bundle bundle)-> SubActivity onStart()-> SubActivity onResume()
场景4:关闭第二个Dialog的SubActivity,回到第一个MainActivity
SubActivity onPause()->MainActivity Resume()->SubActivity onStop() ->SubActivity onDestroy()
场景5:打开第一个MainActivity,再打开第二个SubActivity,按下Home键
SubActivity onPause()-> SubActivity onStop()
场景6:已经打开第一个MainActivity,又打开第二个SubActivity,按下Home键,再点击Launcher上的图标返回到第二个SubActivity
SubActivity onRestart()->SubActivity onStart()->SubActivity onResume()
场景7:已经打开第一个MainActivity和打开Dialog式的第二个SubActivity,最后按下Home键
SubActivity onPause() -> MainActivity onStop() -> SubActivity onStop()
场景8:已经打开第一个MainActivity,再打开Dialog式的第二个SubActivity,按下Home键,再点击Launcher返回的第二个SubActivity
第一个MainActivity onRestart() ->第一个MainActivity onStart()->第二个SubActivity onRestart()->第二个SubActivity onStart()-> 第二个SubActivity onResume()
参考:https://developer.android.google.cn/reference/android/app/Activity