2013-05-01 69 views
-1

我注意到在我的應用程序中onSaveInstanceState方法只在活動被破壞時第一次運行。它應該在每次銷燬時都運行,這不正確嗎? ...我需要修改第一次破壞時保存的數據! ...有人知道這是真的還是我犯了一些錯誤?onSaveInstanceState(Bundle)只有一個執行?

謝謝。

+0

它每次活動即將銷燬時都會運行。例如,如果您在當前活動中調用'finish()',則會在此之前調用它。如果按下後退按鈕,情況也是如此。 – 2013-05-01 10:11:42

回答

1

我想可能是在這裏讀一點有用的後數據保存:
http://developer.android.com/reference/android/app/Activity.html

,尤其是在這裏:
http://developer.android.com/reference/android/app/Activity.html#onSaveInstanceState(android.os.Bundle)

這裏是一個quoute: 「請注意,將持久數據保存在onPause()而不是onSaveInstanceS tate(Bundle),因爲後者不是生命週期回調的一部分,所以在其文檔中描述的每一種情況下都不會被調用。「

我也覺得這可能會感興趣: https://stackoverflow.com/a/5166797/1367437

我知道,我還沒有真正回答你的問題,但它不是entierly清楚你想要達到的目標。如果您想要保留一些應用程序數據,則應該使用sharedPreferences,並將數據存儲在onPause中。

然後,您將從onResume中的sharedPreferences中讀取數據以恢復您的狀態。