1. 典型情况下生命周期分析
问题:
FirstActivity 启动 SecondActivity,请问是 SecondActivity 的 onResume 和FirstActivity 的 onPause 那个先执行?
答案从AMS中可以找到,测试如下
FirstActivity onPause
SecondActivity onCreate
SecondActivity onStart
SecondActivity onResume
FirstActivity onStop
-
SecondActivity
的onResume
发生在FirstActivity
的onPause
之后,onStop
之前。
由此可得,为了让下一个页面启动快,尽量不要再onPause
做耗时操作。
2. 异常情况下生命周期分析
-
onSaveInstanceState
与onPause
的先后不确定 -
onSaveInstanceState
执行在onStop
之前
异常情况分类:
情况一:资源相关的系统配置发生改变导致Activity被杀死并重建
情况二:资源内存不足导致低优先级的Activity被杀死
避免系统配置变化导致Activity重建的方法:
给在manifest中给Activity添加 android:configChanges
属性, android:configChanges
支持很多参数,具体参考文档。
android:configChanges="orientation|screenSize"