1. 程式人生 > 實用技巧 >Android 如何儲存Android 執行時狀態

Android 如何儲存Android 執行時狀態

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