【android官方文檔節選】Activity之onSaveInstanceState

               如轉載請註明出處http://blog.csdn.net/ethanchiu/article/details/19341745

實現生命週期的回調方法

監視生命週期的三種嵌套循環

全部的生命週期 

     在onCreate和onDestroy之間。比如,一個後臺下載線程,在oncreate創建,在ondestory停止。

可見的生命週期

     在onstart和onstop之間。當啓動一個新的Activity,當前Activity不可見。在此,可以保持一些顯示給用戶的資源,可以在on start註冊broadcast,監測ui的變化,在onstop註銷,當不可見的時候。

前端生命週期

     在onresume和onpause之間。當一個對話框出現的時候。

     當內存緊張的時候,onpause是一定會被調用的。onstop和ondestroy可能不會被調用。因此將保存持久化數據放在opause中。當然也要可選擇性的寫,因爲如果耗時,會影響轉到下一個Activity的速度,影響體驗。

保存Activity狀態

     不確定之前的Activity是否已經銷燬並且已經重新創建了它,因此希望Activity還是原來的那個。這種情況下,爲了保存Activity的狀態,需要重寫onSaveInstanceState()。
     
注意:有些時候onSaveInstanceState()不一定會調用,比如按了Back按鈕,用戶是想關閉actity,這時候不需要保存Activity狀態。

     即使不實現onSaveInstanceState()方法,一些Activity的狀態也會默認還原

tip,默認view是會還原狀態的,但是也可以不還原通過設置android:saveEnabled屬性爲false。

注意:onSaveInstanceState()不能保證被調用,所以只能用它記錄瞬時狀態(UI狀態),不能用來存儲持久化數據。用onPause存儲持久化數據(比如數據庫存儲)。

     檢測Activity狀態是否保存的最好方法是,轉化手機屏幕的水平方向,這時Activity會重建。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章