Activity生命周期切换场景

正常情况:

启动Activity

            用户打开activity ——> onCreate() ——>onStart() ——>onResume()——>运行状态

运行状态 ——>当前activity部分被覆盖(仍然可见,如弹窗等)

           运行状态——>onPause()    (暂停当前的activity运行)

运行状态 ——>当前activity被完全覆盖,完全不可见(打开新的activity、锁屏、按HOME键回到主屏、处于后台等)

        运行状态——>onPause() ——>onStop() (暂停当前的activity运行)

被部分覆盖的activity ——>运行状态(即 回到前台)

        onPause() ——>onResume()——>运行状态

当被完全覆盖的activity ——>运行状态 (即 回到前台)

        onStop() ——>onRestart() ——>onStart() ——> onResume() ——>运行状态

运行状态 ——> 用户退出当前activity

      运行状态——> onPause() ——>onStop() ——>onDestory() ——>运行结束

异常状态:

当被完全覆盖的activity处于后台 ——>更高优先级的进程需要内存,但是内存不足

    onStop() ——>直接杀死进程(即杀死当前activity)
    之后当用户退回当前activity时,会再次调用 onCreate()——>onStart()——>onResume()——>运行状态

    当系统内存不足时,会按优先级杀死目标activity的进程
    activity的优先级 如下( 高 ——>低)
    1、完全可见、位于前台的activity,即 正与用户交互的activity
    2、可见但不位于前台的activity(即 部分被覆盖 如 弹窗)
    3、后台activity 即 不可见,不位于前台

资源相关的系统配置发生改变(如 横屏 切换 竖屏)

开始——>onSaveInstanceState() (保存当前状态 数据等)——>onPause() ——>onStop() ——>onDestroy()
[到此activity销毁完毕]
[下面是重新创建activity和恢复数据]
——>onCreate ——>onStart() ——>onRestoreInstanceState()(恢复数据 ——>onResume()——>重新运行

可不重新创建activity从而不调用onSaveInstanceState()、onRestoreInstanceState():
设置activity的configChanges属性设置


          
          此时系统将回调onConfigurationChanged ()

你可能感兴趣的:(Activity生命周期切换场景)