如何在按下後退按鈕時存儲我的應用程序的狀態。如何在後退按鈕上按下應用程序
僅當按下後退按鈕時onPause()
被調用,但不是onSaveInstanceState
我們可以將數據存儲在outState包中。
一個答案可能是sharedPreference
但我的問題是它將只存儲int而不是intArray
作爲捆綁。
有什麼方法可以明確地致電onSaveInstanceState
?
如何在按下後退按鈕時存儲我的應用程序的狀態。如何在後退按鈕上按下應用程序
僅當按下後退按鈕時onPause()
被調用,但不是onSaveInstanceState
我們可以將數據存儲在outState包中。
一個答案可能是sharedPreference
但我的問題是它將只存儲int而不是intArray
作爲捆綁。
有什麼方法可以明確地致電onSaveInstanceState
?
user 600027 ...即使你能夠調用onSaveInstanceState,捆綁包也不會被保存,我不相信它會在硬性殺死後可用。您可以編寫一個方法將int數組轉換爲字符串集,然後通過調用putStringSet()來持久保存數據,然後編寫一個方法將一組字符串轉換爲int數組。
JAL
您可以在Activity#onDestroy()
中進行正常保存。
我認爲onCreate(Bundle)
,onSaveInstanceState(Bundle)
和onRestoreInstanceState(Bundle)
背後的意圖是爲您提供一個機會,讓您在後臺死亡之前保存狀態。然後,應用程序應該恢復,並顯示給用戶,就好像什麼都沒有發生。
在後退按鈕上按下用戶在某種意義上與活動「完成」。應該保存的數據量是不同的。是的,在這種情況下,在SharedPreferences
中保存你的狀態是個好主意。