android Activity細節(一) onSaveInstanceState()方法使用注意點

鴨脖發表於2015-03-26

1.在一個activity被銷燬前,不一定會呼叫onSaveInstanceState()這個方法,因為不是所有情況都需要去儲存activity的狀態(例如當使用者按回退鍵退出你的activity的時候,因為使用者指定關掉這個activity)。


2.如果這個方法被呼叫,它一定會在 onStop()方法之前,可能會在onPause()方法之前。


3.佈局中的每一個View預設實現了onSaveInstanceState()方法,這樣的話,這個UI的任何改變都會自動的儲存和在activity重新建立的時候自動的恢復。但是這種情況只有在你為這個UI提供了唯一的ID之後才起作用,如果沒有提供ID,將不會儲存它的狀態。


4.由於預設的onSaveInstanceState()方法的實現幫助UI儲存它的狀態,所以如果你需要覆蓋這個方法去儲存額外的狀態資訊時,你應該在執行任何程式碼之前都呼叫父類的onSaveInstanceState()方法(super.onSaveInstanceState())。


5.由於onSaveInstanceState()方法呼叫的不確定性,你應該只使用這個方法去記錄activity的瞬間狀態(UI的狀態)。不應該用這個方法去儲存持久化資料。當使用者離開這個activity的時候應該在onPause()方法中儲存持久化資料(例如應該被儲存到資料庫中的資料)。


文章連結:http://blog.csdn.net/murongshusheng/article/details/8199538

相關文章