一 、A、B两个Activity跳转时
A启动:
A:onCreate —>A被第一次创建
A:onStart —>A可见
A:onResume —>A开始准备与用户交互
A中启动B:
A:onPause —>A即将启动B
B:onCreate —>B被第一次创建
B:onStart —>B可见
B:onResume —>B开始准备与用户交互
A:onStop —>A不可见
B返回A:
B:onPause —>B将返回A
A:onRestart —>A再次启动
A:onStart —>A可见
A:onResume —>A开始准备与用户交互
B:onStop —>B不可见
B:onDestroy —>B被销毁
A退出:
A:onPause —>A停止活动
A:onStop —>A不可见
A:onDestroy —>A被销毁
PS:1、onPause方法中不要做耗时的操作,否则会影响Activity之间的跳转效率,用户体验非常不好。 例如监听程序退回到后台 的操作应放在onStop中,不能放在onPause中。2、若A跳转B时,B的onCreate、onStart、onResume生命周期方法在A的onStop之后执行,由于onStop方法时Activity已不可见,会造成A还没创建B就不可见导致黑屏的情况发生。
二 、App前后台切换
A启动后切换至后台:
A:onCreate —>A被第一次创建
A:onStart —>A可见
A:onResume —>A开始准备与用户交互 —>置后台
A:onPause —>A停止活动
A:onSaveInstanceState —>A保存状态
A:onStop —>A不可见
A从后台切换至前台:
A:onRestart —>A被重新唤起
A:onStart —>A可见
A:onResume —>A开始准备与用户交互
三、Activity横竖屏切换
1、未配置android:configChanges时:
横\竖屏启动:onCreate-->onStart-->onResume
横\竖屏切换:
onPause-->onSaveInstanceState-->onStop-->onDestroy-->onCreate-->onStart-->onRestoreInstanceState-->onResume
退出:onPause -->onStop-->onDestroy
2、 配置android:configChanges="orientation|keyboardHidden|screenSize"配置三种中不同的组合情况,不同的系统,不同的手机品牌会执行不同情况的生命周期。