异常情况的生命周期
除了正常的生命周期外,屏幕旋转,以及内存不足,均会造成Activity被回收
一、屏幕旋转
1.1 屏幕旋转的生命周期
-
onSaveInstanceState:默认情况下,当屏幕旋转时,Activity会调用onSaveInstanceState,当然也会调用onPause、onStop、onDestroy。需要注意的是,onSaveInstanceState会在onStop之前,但是和onPause没有固定的调用顺序 -
onRestoreInstanceState: 恢复onSaveInstanceState保存的数据,这个数据在onCreate也会附带,官方推荐在onRestoreInstanceState里还原
1.1.1 onSaveInstanceState是怎么工作的(待补充)
1.1.2 如何避免旋转带来的生命周期
android:configChanges="orientation|screenSize"
二、内存不足
系统会在内存不足时,对内存进行回收,依据存活的优先级来列的话:
前台Activity -> 可见但非前台Activity -> 后台Activity -> 空进程