横竖屏切换时Activity的生命周期情况及Android进程优先级

1.1.安卓3.2(API 13)之前:

  • 不设置Activity 的 android:configChanges 时,切屏会重新调用生命周期,切横屏调用一次,切竖屏调用两次。
  • 设置 Activity 的 android:configChanges="orientation" 时,切屏都会重新调用生命周期,切横屏和竖屏都是调用一次。
  • 设置 Activity 的 android:configChanges="orientation|keyboardHidden" 时,切屏不会调用生命周期,但是会调用onConfigurationChanges() 方法。

1.2.安卓3.2(API 13)开始:

  • 设置 Activity 的 android:configChanges="orientation|screenSize"时,切屏不会重新调用生命周期,但是会调用onConfigurationChanges() 方法。
  • 其他情况都是切横屏和竖屏都是调用一次生命周期。

2.onSaveInstanceState()和onRestoreIntanceState()方法 

onSaveInstanceState():用于保存一些临时性的状态,在Activity被杀掉之前调用保存每个实例的状态。如:在内存不足或者用户直接按home键的时候,由系统销毁Activity A时,该方法会被调用,通过该方法可以有机会保存其用户界面状态,使得用户回到A后,通过onRestoreIntanceState()方法 或者onCreate(Bundle)恢复页面状态。

3.安卓中进程的优先级

1.前台进程:

即和用户交互的Activity或者Activity用到的Service等,如果系统内存不足,前台进程是最后被杀死的。

2.可见进程:

处于暂停状态的Activity或者绑定在其上的Service等,即用户可见,但因失去焦点而无法和用户交互。

3.服务进程:

其中运行着通过调用StartService()方法启动的Service,虽然用户不可见,但是是用户所关心的,例如:不在音乐界面播放的音乐,不在下载页面下载的文件。当系统内存不足时,前面两个进程就会终止。

4.后台进程:

其中运行着执行onStop()方法而停止的进程,但不是用户当前关心的,例如:挂在后台的QQ,这时的进程系统一旦没有了内存就会首先被杀死。

5.空进程:

不包含任何应用的进程,这样的进程,系统一般不会让其存在。

 

参考文章:https://juejin.im/post/5e5c5e306fb9a07cbe346d71

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值