onSaveInstanceState(Bundle)只执行一次?¿

时间:2013-05-01 09:56:50

标签: android

我注意到在我的应用程序中onSaveInstanceState方法仅在活动被销毁时第一次运行。它应该在每次被破坏时运行,是不是正确的? ...我需要修改第一次破坏时保存的数据! ......有人知道这是真的还是我犯了一些错误?

感谢。

2 个答案:

答案 0 :(得分:2)

如果要在onDestroy()

之后保存数据,请使用SharedPreferences来保存数据

答案 1 :(得分: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()而不是onSaveInstanceState(Bundle)中保存持久数据非常重要,因为后者不是生命周期回调的一部分,因此不会在其文档中描述的每种情况下调用。”< / em>的

我也认为这可能是有趣的: https://stackoverflow.com/a/5166797/1367437

我知道我没有真正回答你的问题但是你想要实现的目标并不明确。如果要保留某些应用程序数据,则应使用sharedPreferences,并将数据存储在onPause中。

然后,您将从onResume中的sharedPreferences中读取数据以恢复您的状态。