1、Activity 生命週期

異常關閉,重新創建兩個方法。

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 指的是用戶比如通過藍牙連接了外部鍵盤。


發佈了65 篇原創文章 · 獲贊 28 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章