所以最近的android dev在這裏轉換。爲onSaveInstanceState()自動保存了什麼?而什麼不是?
我在網上教程中看到人們提到我們需要使用onSaveInstanceState()
他們沒有提到的是我們應該使用它的時間。
顯然TextView
對象的內部文本(或按鈕的內部文本)不需要保存。
需要保存什麼? EditText
內容會自動保存嗎?
我們應該保存哪些類型的數據/我們應該不
所以最近的android dev在這裏轉換。爲onSaveInstanceState()自動保存了什麼?而什麼不是?
我在網上教程中看到人們提到我們需要使用onSaveInstanceState()
他們沒有提到的是我們應該使用它的時間。
顯然TextView
對象的內部文本(或按鈕的內部文本)不需要保存。
需要保存什麼? EditText
內容會自動保存嗎?
我們應該保存哪些類型的數據/我們應該不
保存您的活動狀態 當你的活動開始,停止,系統調用的onSaveInstanceState()方法,因此您的活動可以保存狀態信息進行收集的鍵值對。此方法的默認實現可以保存有關活動視圖層次結構狀態的瞬態信息,例如EditText小部件中的文本或ListView小部件的滾動位置。你的應用應該在onPause()方法之後和onStop()之前實現onSaveInstanceState()回調。不要在onPause()中實現此回調。
警告:您必須始終調用onSaveInstanceState()的超類實現,以便默認實現可以保存視圖層次結構的狀態。
要保存活動的其他狀態信息,必須重寫onSaveInstanceState()並將鍵值對添加到在您的活動意外銷燬的事件中保存的Bundle對象。例如:
static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
...
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
// Save the user's current game state
savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
// Always call the superclass so it can save the view hierarchy state
super.onSaveInstanceState(savedInstanceState);
}
更多細節,你可以找到here
感謝您詳細的答覆。但是你錯過了我所認爲的「活動狀態」的觀點。更好的問題是 - 什麼是非活動狀態?所以我知道不需要保存這些 – AlanSTACK