Activity狀態的儲存與恢複

來源:互聯網
上載者:User

一、臨時性資料

首先說明一下一般控制項的狀態是不需要你寫代碼去儲存的,因為Android架構中幾乎所有UI控制項都實現了onSaveInstanceState方法, 因此當Activity銷毀和重建時, 這些UI控制項會自動儲存和恢複狀態資料。當然你也不能什麼都不做,你需要為這些控制項指定一個id,剩下的事情架構會自己去做,如果你不指定id,那麼控制項的狀態資料是不會自動儲存和恢複的。

下面來詳細說明一下onSaveInstanceState和onRestoreInstanceState這兩個方法。

onSaveInstanceState調用的原則是系統有未經你的許可銷毀Activity的可能。那麼onSaveInstanceState有下面幾種情況會調用:


1、按下HOME鍵(onPause-->onStop-->onStart-->onResume)  

2、長按HOME鍵切換到了其他APP(onPause-->onStop-->onStart-->onResume)  

3、橫豎屏切換(onPause-->onStop-->onDestroy-->onCreate-->onStart-->onResume)  

4、Activity的導航(onPause-->onStop-->onStart-->onResume)  

5、鎖定螢幕(鎖定:onPause-->onStop,喚醒:onStart-->onResume)

onRestoreInstanceState被調用的原則是Activity被銷毀了,而不是可能被銷毀了。

二、持久性資料

在onResume和onPause方法中做,可以把資料儲存在資料庫或者SharedPreference中。然而在生命週期函數中不適合做耗時的操作,讀者如果有好的方法儲存較大的資料,歡迎評論。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.