2. 单Activity按返回按钮
=====================================================================================
触发步骤:
按返回按钮
或者调用finish方法
重新进入Activity
该场景演示了用户启动,销毁,重新进入Activity的生命周期变化。调用顺序如图:
状态管理:
onSaveInstanceState没有被调用,因为Activity被销毁,没有必要保存状态
当Activity被重新进入时,onCreate方法bund
le参数为null
3. 单Activity按Home键
======================================================================================
触发步骤:
用户按Home键
或者切换至其它APP
重新进入Activity
该场景Activity会调用onStop方法,但是不会立即调用onDestroy方法。调用顺序如图:
状态管理:
当Activity进入Stopped状态,系统使用onSaveInstanceState保存app状态,以防系统将app进程杀死,重启后恢复状态。
4. 单Activity旋转屏幕
====================================================================================
触发步骤:
Configuration发生改变, 比如旋转屏幕
用户在多窗口模式下调整窗口大小
当用户旋转屏幕,系统会保留旋转之前的状态,能很好的恢复到之前的状态。调用顺序如图:
状态管理:
Activity被完全销毁掉,但是状态会被保存,而且会在新的Activity中恢复该状态
onCreate和onRestoreInstanceState方法中的bundle是一样的
5. 单Activity弹出Dialog
========================================================================================
触发步骤:
在API 24+上开启多窗口模式失去焦点时
其它应用部分遮盖当前APP,比如弹出权限授权dialog
弹出intent选择器时,比如弹出系统的分享dialog
该场景不适用于以下情况:
相同APP中弹dialog,比如弹出alertDialog或者DialogFragment不会导致Activity onPause发生调用
系统通知。当用户下拉系统通知栏时,不会导致下面的Activity onPause发生调用。
6. 多个Activity跳转
===================================================================================
触发步骤:
activity1 跳转到activity2
按返回按钮
注意:activity1 跳转到activity2 正确的调用顺序是
->activity1.onPause
->activity2.onCreate
->activity2.onStart
->activity2.onResume
->activity1.onStop
调用顺序是**
->activity1.onPause
->activity2.onCreate
->activity2.onStart
->activity2.onResume
->activity1.onStop



