onCreate
onStart
onReStart
onResume
onPause
onStop
onDestroy
清晰描述onConfigurationChanged生命周期方法的場景
- 簡述場景
由于系統(tǒng)的數據儲存和恢復機制,當系統(tǒng)配置發(fā)生改變后,Activity會被重建,如果不想讓Activity重建,可以給Activity指定configChanges屬性。這樣當相關配置改變后,Activity不重建,取而代之的是調用onConfigurationchanged方法。
- 案例
比如,Activity默認當橫豎屏發(fā)生改變,Activity被重建,用上述方法在Menifest.xml中給Activity聲明android:configChanges="orientation|srceenSize"
如果橫豎屏切換不進行上述操作使Activity重建,系統(tǒng)的數據儲存和恢復機制是如何處理
onSaveInstanceState、onRestoreInstanceState調用場景
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
}
@Override
protected void onRestoreInstanceState(Bundle savedInstanceState) {
super.onRestoreInstanceState(savedInstanceState);
}
- Activity在異常情況下終止,系統(tǒng)會調用onSaveInstanceState來保存當前Activity的狀態(tài)。這個方法在onStop方法之前調用,和onPause沒有既定的時序關系。
- 在Activity被重建后,系統(tǒng)會在onStart之后調用onRestoreInstanceState,并且把銷毀前onSaveInstanceState保存的Bundle對象作為參數傳遞給onRestoreInstanceState和OnCreate方法
- 系統(tǒng)自動保存的狀態(tài):當前Activity的視圖結構、文本框中用戶輸入的數據、ListView的滾動位置等