Android 如何儲存Android 執行時狀態
阿新 • • 發佈:2020-09-16
Android 如何儲存Android 執行時狀態
使用 SaveInstanceState
去儲存執行時資料
- 首先,我們需要重寫一下系統的
public void onSaveInstanceState(Bundle savedInstanceState)
方法 - 並在
onSaveInstanceState
方法中新增需要儲存的資料。 - 最後我們可以在
onRestoreInstanceState
方法中進行資料讀取。
如何進行執行時狀態的儲存
上面我們說到,我們可以使用onSaveInstanceState
去進行資料儲存。
/** * 儲存例項狀態 * @param savedInstanceState */ @Override public void onSaveInstanceState(Bundle savedInstanceState) { savedInstanceState.putInt("ID", 1); super.onSaveInstanceState(savedInstanceState); }
可以注意到這裡用來儲存執行時狀態的資料的是一個Bundle
如果你對它有過了解,那麼我們都知道它是一個鍵值對型別的。所以我們的儲存資料的語句就是:
savedInstanceState.putInt("ID", 1);
注意在存入資料後我們還需要呼叫超類的方法,來完成儲存。
如何恢復資料
如何去恢復我們剛剛儲存的資料。這個時候我們就需要去覆蓋寫一個onRestoreInstanceState(Bundle savedInstanceState)
呢。
/** * 恢復例項狀態 * @param savedInstanceState */ @Override public void onRestoreInstanceState(Bundle savedInstanceState) { if (savedInstanceState != null) { Toast.makeText(this, "Welcome back.", Toast.LENGTH_SHORT).show(); int id= savedInstanceState.getInt("ID"); System.out.println(id); } else { Toast.makeText(this, "Welcome to HelloAndroid!", Toast.LENGTH_SHORT).show(); } super.onRestoreInstanceState(savedInstanceState); }
上面就是我們用來恢復執行時狀態的相關程式碼呢。這裡其實沒啥,主要就是我們重寫呢onRestoreInstanceState
方法來完成操作。
恢復流程如下。
首先,在onRestoreInstanceState
方法中,我們需要去判斷一下當前的Bundle
是否為空。如果不為空我們就需要進行資料獲取操作呢。新增為空判斷是為了空指標
所導致的相關異常。
int id = savedInstanceState.getInt("ID");
這樣,我們的獲取操作就完成了,需要注意的是在獲取一些資料的時候我們需要進行為空判斷,但是這個無法避免取出來的值不為空,所以如果需要使用這些資料請進行異常處理,或者是相關的為空判斷。
到這裡,我們Android 儲存和恢復例項狀態
的操作就基本完成了。
學習自:Stack Overflow