app涉及三个活动:A mainActivity 、B normalActivity、C dialogActivity 。A可启动B、C
红色为活动A一个完整生命周期的路径,绿色为活动B的生命周期,蓝色为活动C的生命周期:
上图为 图1 启动A后 图2 A启动B后 图3 A启动C后
1. 启动活动A A:onCreate ->onStart ->onResume(活动A运行中)->
2. A中启动活动B
a. B即将来到前台 A: onPause ->
b. 活动B来到前台 B: onCreate ->onStart ->onResume ->
c. 活动A不再可见(被B完全挡住) A: onStop -> ps:A是主活动,它不可见时暂时不会被销毁,彻底关闭app时才销毁
3. 在活动B中点击返回,返回活动A
a. A即将来到前台 B: onPause->
b. 活动A来到前台 A: onRestart->onStart ->onResume(活动A运行中)->
c. 活动B不再可见(被A完全挡住) B:onStop->onDestroy ps:B不是主活动,它不可见时会被销毁
4. 点击返回键,退出app A: onPause->onStop->onDestroy
1. 启动活动A A:onCreate ->onStart ->onResume(活动A运行中)->
2. A中启动活动C
a. C即将来到前台 A: onPause ->
b. 活动C来到前台 C: onCreate ->onStart ->onResume ->
c. 活动A仍可见 A: ps:C是dialog式活动,A仍可见,只是无法交互(见上 图3),A不执行onStop
3. 在活动C中点击返回,返回活动A
a. A即将来到前台 C: onPause->
b. 活动A来到前台 A: onResume(活动A运行中)->
c. 活动C不再可见 C: onStop->onDestroy
4. 点击返回键,退出app A: onPause->onStop->onDestroy
直接按home键和按返回键退出app,主活动状态的区别:
1. 运行app,mainActivity的状态:
2. 退出app(不一定关闭)
情况1:点击返回键退出mainActivity
情况2:点击桌面键退出mainActivity(主活动并未被destroy)
2. 拓展:在情况2(主活动并未被destroy)的基础上再次(点击手机桌面app图标)打开app