Handling Runtime Changes(retain Fragment)

  一些設置在發生 configurations change 的時候(如屏幕旋轉、語言改變等),會重新啓動當前處於運行太的 activity(即先調用 onDestory(),再調用 onCreate())。重新啓動 activity 是爲了讓它能夠適應新的 configuration,它能夠根據新的 configuration 加載合適的資源。
  要處理好 restart 事件,就有必要在 activity 中存儲 configuration change 前一刻的狀態,可以在 onSaveInstanceState() 中存儲相關狀態,因爲 activity 在 destory 之前,該方法會被回調。然後可以在 onCreate() 或 onRestoreInstanceState() 中恢復 activity 的狀態。爲了恢復 activity 的狀態,你需要自己存儲/恢復大量的字符串,界面狀態等,這是相當繁瑣的事情。爲了省去這個麻煩,你可以採用下面這兩種方法:
(1)在 configuration change 的時候 retain 一個 object:允許 configuration change 的時候 restart activity,但是把相應的 object 存儲起來,再傳遞給新創建的 activity。
(2)自己處理 configuration change:也可以阻止系統在 configuration change 的時候 restart activity,你可以自己捕獲 configuration change 事件,然後根據需要更新你的 activity。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章