1. 典型情況下生命周期分析
問題:
FirstActivity 啟動 SecondActivity,請問是 SecondActivity 的 onResume 和FirstActivity 的 onPause 那個先執(zhí)行?
答案從AMS中可以找到,測試如下
FirstActivity onPause
SecondActivity onCreate
SecondActivity onStart
SecondActivity onResume
FirstActivity onStop
-
SecondActivity的onResume發(fā)生在FirstActivity的onPause之后,onStop之前。
由此可得,為了讓下一個頁面啟動快,盡量不要再onPause做耗時操作。
2. 異常情況下生命周期分析
-
onSaveInstanceState與onPause的先后不確定 -
onSaveInstanceState執(zhí)行在onStop之前
異常情況分類:
情況一:資源相關(guān)的系統(tǒng)配置發(fā)生改變導(dǎo)致Activity被殺死并重建
情況二:資源內(nèi)存不足導(dǎo)致低優(yōu)先級的Activity被殺死
避免系統(tǒng)配置變化導(dǎo)致Activity重建的方法:
給在manifest中給Activity添加 android:configChanges屬性, android:configChanges支持很多參數(shù),具體參考文檔。
android:configChanges="orientation|screenSize"