1. 程式人生 > >android studio解決活動錯誤回收之後儲存原始資料的問題

android studio解決活動錯誤回收之後儲存原始資料的問題

我們先來描述一下這個問題的現象,比如我們在對話方塊中寫了很多字,一不小心點選了back,記憶體也不是特別的足,系統回收了剛才的活動,當我們再進去的時候,什麼字都沒有了,那將會是多麼查的體驗啊,所以我們就來解決一下錯誤回收之後恢復原始資料的問題。

第一步:

android studio提供了一個方法,叫做onSaveInstanceState(),這個方法在這個活動回收之前一定會呼叫的方法,所以,我們可以在這裡將之前的臨時資料儲存。

第二步:

既然已經將資料儲存了,所以,這一步我們想要把之前的資料恢復出來,然後,我們就想把它寫在onCreate中,因為這個方法在活動開始的時候才會被呼叫一次,簡單的來說,就是在初始化的時候將資料恢復。

將如下程式碼新增到活動當中,由於活動名和佈局的不同,讀者需要稍微修改一點

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.Menu;
public class FirstActivity extends AppCompatActivity {
    @Override
    //在這個onCreate方法中,自動傳入Bundle物件,有需要的時候就有值,沒有需要即為空
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //在這裡我們省略了一句載入佈局,前面都是自己形成的
        if(savedInstanceState!=null)
        {
            String Data=savedInstanceState.getString("data_key");//獲取
        }
    }
    protected void onSaveInstanceState(Bundle outState)
    {
        super.onSaveInstanceState(outState);
        String Data="abc";//在這裡我們假設要存入的資料
        outState.putString("data_key",Data);//呼叫putString方法將資料儲存,第一個引數是鍵,用於取出資料
    }

}