情景
頁面A有一個EditText輸入框,有一個按鈕。現在你輸入一段文字,點擊按鈕跳到頁面B。這時候由于內存不足,頁面A被銷毀。過了一會你點擊返回鍵返回A,你會發現剛剛輸入的文字沒有了。(由于A被回收,這時候返回就不會執行onRestart(),而是從新onCreate(),A被重建)。
解決
保存參數:onSaveInstanceState()方法會攜帶一個Bundle參數,用于保存臨時變量。
@Override
protected void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
//在這里保存臨時參數
}
恢復參數:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
String data = savedInstanceState.getString("data");
}
}