前置条件:Activity的launchmode为默认值
分以下几种情况讨论activity生命周期回调函数的调用顺序:
onCreate()
onStart()
onResume()
【Back键按下】
onPause()
onStop()
onDestroy()
与情况1相同。
onCreate()
onStart()
onResume()
【Home键按下】
onPause()
onStop()
【再次进入Ap】
onRestart()
onStart()
onResume()
A oncreate()
A onstart()
A onResume()
【启动B】
A onPause()
B onCreate()
B onStart()
B onResume()
A onSaveInstanceState()
A onStop()
【从B Back】
B onPause()
A onActivityResult()
A onRestart()
A onStart()
A onResume()
B onStop()
B onDestroy()
【从A Back】
A onPause()
A onStop()
A onDestroy()
A onCreate()
A onStart()
A onResume()
【启动B】
A onPause()
B onCreate()
B onStart()
B onResume()
【从B Back】
B onPause()
A onActivityResult()
A onResume()
B onStop()
B onDestroy()
同下面AlertDialog
onCreate()
onStart()
onResume()
【显示AlertDialog】
【关闭AlertDilaog】
在AlertDialog出现以及消失的过程中,没有触发任何onXXX事件。
等同新Activity全覆盖
等同桌面图标直接启动,会直接启动一个新Activity。
如果目标Activity是由桌面控件触发的,那么等同情况3,不会创建新Activity。
如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。
如果目标Activity是由桌面控件启动的,那么不会创建新Activity,但也不会把目标Activity提到最上层。
如果目标Activity是由Launcher图标启动的,那么会不停的创建新Activity。