打开设置/关于时保存MainActivity的状态

Posted

技术标签:

【中文标题】打开设置/关于时保存MainActivity的状态【英文标题】:Saving State of MainActivity when opening Settings/About 【发布时间】:2013-02-26 21:46:25 【问题描述】:

当我从菜单中打开设置时,我的MainActivity 上有一些SeekBarsSwitchCheckBox

Intent settings = new Intent(this, SettingsActivity.class);
startActivity(settings);
return true;

现在当我返回(ActionBar 或返回按钮)时,会丢失SeekBars 的进度以及开关和checkbox 的状态。

onSaveInstanceState 似乎可以保存它,但 onRestoreInstanceState 从未被调用,因此它什么也不恢复。

我不想永久保存这些值,只是在打开“设置”或“关于”时。

【问题讨论】:

【参考方案1】:

onRestoreInstanceState 仅在操作系统终止您的应用程序(方向更改或内存释放操作)后调用。您只需转到设置对话框并返回应用程序,它应该仍在后台运行,并且状态都应该保持不变。

【讨论】:

嗯,我可能做错了什么。当我从 MainActivity 中的 Settings/About onCreate 返回时,一切都被重置为 0。 MainActivitylaunchMode 设置为singleTop 有效。

以上是关于打开设置/关于时保存MainActivity的状态的主要内容,如果未能解决你的问题,请参考以下文章

启动应用程序时,Android 通知保持打开状态

垃圾收集后如何保存应用程序状态? [复制]

将QCheckBox的状态保存在文件中,程序重启时加载状态

OneSignal SDK:用户点击通知后如何打开 MainActivity

关于浏览器回退默认行为的研究 回退保存页面状态

打开具有对话框的活动时应用程序关闭在背景中(样式Theme.Dialog)