android studio解決活動錯誤回收之後儲存原始資料的問題
阿新 • • 發佈:2019-01-10
我們先來描述一下這個問題的現象,比如我們在對話方塊中寫了很多字,一不小心點選了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方法將資料儲存,第一個引數是鍵,用於取出資料 } }