我在参考http://developer.android.com/reference/android/app/Activity.html。
我有一个活动,用户可以“中断”,例如,用户打开菜单以调用首选项屏幕。调用首选项屏幕时,将调用
onSaveInstanceState(Bundle)
,我可以保存我的数据。到目前为止还好。但是按下返回按钮后,onRestoreInstanceState(Bundle savedInstanceState)
并没有被调用。
那么我该如何保存我的状态呢?我必须在调用新活动时这样做吗?但如何操作?
我唯一能想到的方法是通过将状态传递给新活动来保存状态,在那里不使用已保存的数据,将其返回到第一个活动,并在onActivityResult
中恢复状态。但这意味着我必须来回传递数据才能恢复状态。似乎不是很好的解决方案。
onStart()
,onRestart()
等方法来记录生命周期(在此之前,我只有onCreate()
生命周期方法)。我看到我的活动通过各种生命周期方法翻转,并有时调用onSaveInstanceState
。然而,我无法让应用程序调用onRestoreInstanceState()
,每次返回到列表时,它都很好,即活动没有被杀死并保持状态。我将开发工具设置为销毁每个活动,它开始调用onRestoreInstanceState
。 - Bert F