異常關閉,重新創建兩個方法。
onSaveInstanceState(Bundle outState)
onRestoreInstanceState(Bundle savedInstanceState)
方法名稱寫的很明確。
注意點:
1、onSaveInstanceState 和 onPause 調用時機不分前後,但是會在 onStop之前;
2、onRestoreInstanceState 調用時機在 onStart 之後,但是我們可以在 onCreate中判斷 Bundle是否爲空。官方建議在onRestoryInstanceState中恢復;
3、Activity重啓默認恢復數據如,文本框輸入數據,ListView滾動位置等。可具體查看每個View的 onSaveInstanceState 和 onRestoryInstatnceState;
4、不想系統配置發生改變時,Activity被重新創建,可以在配置文件增加 configChanges 屬性,多屬性使用 "|"進行分割,常用的有 locale (系統語言改變)、orientation(橫豎屏)、keyboardHidden(鍵盤可訪問性)
配置後,當系統配置發生改變,不會重新創建Activity,而是走 onConfigurationChanged,其中 newConfig保存了當前系統屬性。都是一些固定值。如比 橫豎屏 1 和 2表示。
@Override public void onConfigurationChanged(Configuration newConfig) { super.onConfigurationChanged(newConfig); }
個人理解,keyboardHidden 指的是用戶比如通過藍牙連接了外部鍵盤。