Activity 系列知识 (二) ——异常生命周期

72 阅读1分钟

异常情况的生命周期

除了正常的生命周期外,屏幕旋转,以及内存不足,均会造成Activity被回收

一、屏幕旋转

1.1 屏幕旋转的生命周期

屏幕旋转.jpeg

  1. onSaveInstanceState:默认情况下,当屏幕旋转时,Activity会调用onSaveInstanceState,当然也会调用onPause、onStop、onDestroy。需要注意的是,onSaveInstanceState会在onStop之前,但是和onPause没有固定的调用顺序

  2. onRestoreInstanceState: 恢复onSaveInstanceState保存的数据,这个数据在onCreate也会附带,官方推荐在onRestoreInstanceState里还原

1.1.1 onSaveInstanceState是怎么工作的(待补充)

1.1.2 如何避免旋转带来的生命周期

android:configChanges="orientation|screenSize"

二、内存不足

系统会在内存不足时,对内存进行回收,依据存活的优先级来列的话:

前台Activity -> 可见但非前台Activity -> 后台Activity -> 空进程