onSaveInstanceState()解決活動被回收時臨時資料得不到儲存的問題
阿新 • • 發佈:2019-01-23
Activity中提供的一個onSaveInstanceState()回撥方法,這個方法保證一定在活動被回收之前呼叫,因此我們可以通過這個方法來解決活動被回收時臨時資料得不到儲存的問題。
onSaveInstanceState()方法會攜帶一個bundle型別的引數,bundle提供了一系列的方法用於儲存資料。每個儲存方法需要傳入兩個引數,第一個是鍵,用於從bundle中取值,第二個引數是真正要儲存的內容。
將臨時資料進行儲存
@Override
protected void onSaveInstanceState(Bundle outState) {
// TODO Auto-generated method stub
super.onSaveInstanceState(outState);
String tempData="Something you just typed";
outState.putString("data_key",tempData);
}
通過相應的取值方法將資料取出
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState!=null){
String tempData=savedInstanceState.getString("data_key");
Log.d("data",tempData);
}
}