Activity 的 生命周期分析

161 阅读2分钟

Activity 的 生命周期分析

**这里写图片描述**

activity 正常运行时

  1. activity 从onCreate 开始启动 顺序执行 onCreate-onStart-onResume ,进入activity 开始运行程序。
  2. 在退出时 会先执行onPause-onStop activity退到后台,继续执行- onDestroy。 activity注销。
  3. 从后台回复到正常前台可交互界面时 会先经过onRestart-onStart-onResume。再次进入ancient开始运行程序 ,所以在onResume中可以写一些对程序运行有需要的判断(比如说在判断用户是否登录时可在此进行判断,来对下面的逻辑进行展开)
  4. onStart 和 onResume的区别 onStart是activity开始运行已经到前台但是用户看不见,onResume后可以开始交互
  5. onStop 和 onPause类似。同样是通过是否能看见的角度开调用的。
  6. activityA 跳转到activityB中的执行顺序是

activityA —onPause
activityB —onCreat
activityB —onStart
activityB —onResume
activityA —onStop

activityB会在A的onPause结束后才开始执行,所在onPause中最好不要做耗时操作。

activity 异常运行时

activity在系统运行内存不足后会杀死activity 或是activity在系统配置发生变化时杀死并重建activity

1.在手机横屏与竖屏之间切换时会发生系统配置图片等信息重置,这时activity会进入异常的生命周期,
会调用onSaveInstanceState方法 对当的状态信息进行保存,
在同过新建activity的onRestoreInstanceState方法来回复,
oldActivity — onSaveInstanceState
newActivity — onCreat
newActivity — onStart
newActivity — onRestoreInstanceState
newActivity — onResume

2资源管理不足内存不足会杀死activity (会通过优先级进行选择)

(1)前台Activity -正在交互 优先级最高

(2)可以看见不可以交互的

(3) 到后台 看不见的 优先级最低

3 同时我们可以通过改变configChanges的 值来使activity不再关闭重建

android:configChanges="orientation"  //横屏竖屏转换是使用

keyboardHidden  //键盘的可访问性发生变化,比如用户调出了键盘

locale  // 设备的本地位置发生变化,一般指切换了系统语言