Activity中保存狀態和數據

onResume()和onPause()方法是調用比較頻繁的,在這兩個方法裏面一般做很小耗時的操作。

另外:onPause,onStop,onDestory三個方法中,由於onPause方法是Activity創建後最有可能保證執行的方法。

因此,當系統遇到緊急情況需要恢復內存,那麼onStop,onDestory可能不被執行,因此你應當在onPause裏保存一些至關重要的狀態屬性,當然你應當有選擇性的做一些操作,不能太耗時,如果太耗時,那麼其他的activity將不能被創建直到該activity的onPause方法執行完畢並返回。

onSaveInstanceState()方法是有個Bundle參數的,這個方法保存的數據是由系統管理的,當你該activity被殺死,重新訪問的時候該Bundle參數會被傳入onCreate()方法的Bundle。而在onPause裏面保存的數據是可能保存到硬盤去的。

在使用Fragment的頁面切換時,可能會出現重影,這是因爲當前內存被回收的緣故,但是因爲當前頁面需要顯示,便會重新加載,在系統會自作聰明的重啓當前所有的頁面,解決這個問題便是需要利用重寫onSaveInstanceState()記錄當前切換的頁面,在內存重啓頁面再次加載的時候只加載當前頁面!

發佈了32 篇原創文章 · 獲贊 8 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章