当用户按下返回按钮关闭活动时保存和恢复活动状态

Posted

技术标签:

【中文标题】当用户按下返回按钮关闭活动时保存和恢复活动状态【英文标题】:Saving and restoring Activity State when Activity is closed by pressing back button by user 【发布时间】:2014-07-02 03:07:22 【问题描述】:

我正在开发一款用于收集客户详细信息(例如个人、业务、资产等)的应用程序。

应用程序显示带有选项的ListView,并根据选项启动活动。在个人用户中输入详细信息后,按下返回按钮并返回到 MainActivity(ActivityListView)并选择另一个选项,例如业务详细信息和资产详细信息。用户输入详细信息并通过返回按钮返回 MainActivity 并选择另一个选项。

我尝试使用 onSavedInstance(Bundle)onRestoreInstanceState(Bundle) 以及 sharedpreference 来保存我的 Activitys,但失败了。

有人可以帮忙吗?如果需要,我会提供代码。

【问题讨论】:

"我试图保存...但是失败了" 这里的失败是什么意思?它没有正确恢复状态?应用程序崩溃了?它把你的头发染成紫色? 检查 onBackPressed() 方法。 【参考方案1】:

OnSaveInstanceState()/OnRestoresInstanceState() 不应该用于从 Activity 按下的返回键。事实上,OnSaveInstanceState() 从未被调用过。在这里,用户明确地销毁了 Activity 并将其从后台堆栈中移除。

这两种方法用于用户按下主页按钮或android系统破坏您的Activity的情况。

你可以尝试的选项

    尝试使用StartActivityForResult()/OnActivityResult() 方法。在这里,目标 Activity 可以设置您的父 Activity 可以访问的数据。 使用应用程序类(单个实例类(singleton class)来保存数据)。 共享SharedPreferences、文件、数据库等内容。

【讨论】:

以上是关于当用户按下返回按钮关闭活动时保存和恢复活动状态的主要内容,如果未能解决你的问题,请参考以下文章

保存当前状态应用程序数据和恢复活动的问题

如何退出活动并将其恢复到之前的状态?

按钮 按下返回到其他活动

按下“确定”按钮后,Android 相机活动不会返回到我的应用程序

用户返回活动时 Videoview 未启动

一个额外的 popViewControllerAnimated:当用户按下返回按钮时?