文章目录
- 图示:
1、场景
-
一个 Activity 启动另一个 Activity:onPause()->onStop(),
-
再返回:onRestart()->onStart()->onResume()
-
程序按back 退出: onPause()->onStop()->onDestory(),
-
再进入:onCreate()->onStart()->onResume();
-
程序按 home 退出: onPause()->onStop(),
-
再进入:onRestart()->onStart()->onResume();
2、特殊场景
(1)以下情况下都只会触发 onPause 而不会触发 onStop:
一个透明的、或者包含 Dialog 的 Activity 出现
锁屏
闪退:代码不正确或者内存不足
(2)执行onStop:
按 home 键返回桌面
启动另一 activity 把原 activity 完全遮住
(3)当Activity B 覆盖 A 导致 A 完全不可见时
//【1】部署程序
D/MainActivity: onCreate------A
D/MainActivity: onStart-------A
D/MainActivity: onResume------A
//【2】点击A中的按钮开始跳转到B
D/MainActivity: onPause-------A
D/SecondActivity: onCreate----B
D/SecondActivity: onStart-----B
D/SecondActivity: onResume----B
D/MainActivity: onStop--------A
//【3】然后点击返回键从B返回A
D/SecondActivity: onPause-----B
D/MainActivity: onRestart-----A
onStart-------A
D/MainActivity: onResume------A
D/SecondActivity: onStop------B
D/SecondActivity: onDestroy---B
(4)当Activity B 背景被设置为透明(相当于发生跳转后,A 部分可见)
//【1】部署程序
D/MainActivity: onCreate------A
D/MainActivity: onStart-------A
D/MainActivity: onResume------A
//【2】点击A中的按钮开始跳转到B
D/MainActivity: onPause-------A
D/SecondActivity: onCreate----B
D/SecondActivity: onStart-----B
D/SecondActivity: onResume----B
//【3】然后点击返回键从B返回A
D/SecondActivity: onPause-----B
D/MainActivity: onResume------A
D/SecondActivity: onStop------B
D/SecondActivity: onDestroy---B
3、参考资料
- https://blog.csdn.net/weixin_43589682/article/details/97030740