Activity的生命周期
① activity启动
② Activity被DialogActivity覆盖其上
注意:
?Activity被Dialog覆盖的时候不会onPause(),被Dialog风格的Activity覆盖其上才会onPause()。
?onStart()和onStop() :是否可见
? onResume()和onPause():是否能够与用户交互
③ Activity从被覆盖状态回到前台
④ 锁屏
⑤ 解锁屏
⑥ ②和④的组合:先打开DialogActivity:onPause() → onSaveInstanceState(),然后锁屏 onStop()
⑦ 在第⑥的基础上,解锁屏回到DialogActivity:onRestart() → onStart(),关闭DialogActivity:onResume()
⑧ 当前Activity跳转到另一Activity或者按Home键回到桌面
⑨ 在⑧的基础上,回到Activity
⑩ 旧Activity打开新Activity:旧Activity的onPause(),然后新Activity的onCreate() → onStart() → onResume(),最后旧Activity的onStop()
①① 点手机右小角的正方形键,打开任务栏:onPause() → onStop()

右滑关闭APP,注意此时onDestroy()不会执行
异常情况下Activity的生命周期
① 由于资源相关的系统配置发生改变导致Activity被kill后重新创建
例子:旋转屏幕
注意:
?onSaveInstanceState()的调用在onStop()之前,与onPause无关
? onRestoreInstanceState()的调用在onStart()之后,与onResume()无关
?防止重建Activity使用 android : configChanges = “orientation”
② 由于系统内存不足导致低优先级的Activity被回收
优先级:前台Activity>可见非前台Activity>后台Activity
Activity和Fragment的生命周期关系
?开启
?重启
?关闭
Activity和Menu的生命周期关系
参考博客:Android 四大组件