Fragment Lifecycle
Activity Lifecycle
旋轉螢幕
在裝置狀態改變發生時(比如要調整版面、語言等),使系統解決變更的最簡單方式就是完全關閉。
在旋轉螢幕時,Activity 會被 destory,然後再被 create 、 start 。暫存的資料會遺失。
使用 onSaveInstanceState() 儲存套件資料
您可以將 onSaveInstanceState()
呼叫視為安全防護措施;此呼叫會在活動離開前景時,將少量資訊儲存至套件。系統會在此時儲存資料,因為若等待直到應用程式關閉,系統可能會有資源壓力。
有時在背景的應用程式會被系統關閉,在使用者返回時才重新啟動,看似沒有關閉過,實則可能使資料遺失。因此,需使用 SavedState 確保資料不會遺失。
使用方式如下 :
使用方式如下 :
保存 :
override fun onSaveInstanceState(outState: Bundle) {
super.onSaveInstanceState(outState)
outState.putBoolean(IS_EDITING_KEY, isEditing)
outState.putString(RANDOM_GOOD_DEED_KEY, randomGoodDeed)
}
取回 :
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
isEditing = savedInstanceState?.getBoolean(IS_EDITING_KEY, false)
randomGoodDeed = savedInstanceState?.getString(RANDOM_GOOD_DEED_KEY)
?: viewModel.generateRandomGoodDeed()
}
0 comments:
張貼留言