2011-03-10 120 views
7

如何在按下後退按鈕時存儲我的應用程序的狀態。如何在後退按鈕上按下應用程序

僅當按下後退按鈕時onPause()被調用,但不是onSaveInstanceState我們可以將數據存儲在outState包中。

一個答案可能是sharedPreference但我的問題是它將只存儲int而不是intArray作爲捆綁。

有什麼方法可以明確地致電onSaveInstanceState

回答

2

user 600027 ...即使你能夠調用onSaveInstanceState,捆綁包也不會被保存,我不相信它會在硬性殺死後可用。您可以編寫一個方法將int數組轉換爲字符串集,然後通過調用putStringSet()來持久保存數據,然後編寫一個方法將一組字符串轉換爲int數組。

JAL

1

您可以在Activity#onDestroy()中進行正常保存。

我認爲onCreate(Bundle),onSaveInstanceState(Bundle)onRestoreInstanceState(Bundle)背後的意圖是爲您提供一個機會,讓您在後臺死亡之前保存狀態。然後,應用程序應該恢復,並顯示給用戶,就好像什麼都沒有發生。

在後退按鈕上按下用戶在某種意義上與活動「完成」。應該保存的數據量是不同的。是的,在這種情況下,在SharedPreferences中保存你的狀態是個好主意。

相關問題