1

在Android中,从Activity A,如果我启动新的Activity B,Android会自动保存Activity A的所有状态。所以当我点击返回或者从Activity B调用finish()时,Activity A会恢复到我启动时的状态Activity B(例如:一个 ScrollView 在 Activity A 中的位置,或者 ProgressBar 的值)。在 Activity AI 中有一个 ProgressBar 显示某些任务的进度,然后如果我从 Activity B 回来,ProgressBar 会恢复并继续运行。

现在我想要的是,从活动 A 中,我将调用 finish()。如何像 Android 一样保存 Activity A 的所有状态(包括我上面描述的 ProgressBar),所以当我再次启动 Activity A 时,我可以像调用 finish() 之前那样恢复所有内容,并且我的 ProgressBar 继续运行?

我可以将 Activity A 推送到 Android 中的堆栈之类的东西,然后将其弹出吗?任何人都知道如何实现这一目标?

4

4 回答 4

3

不要在单击后退按钮时调用完成。

而是调用方法“moveTaskToBack(false)”。这将“最小化”您的应用程序。下次您打开应用程序时,应用程序会以之前的状态打开。

于 2012-07-10T04:51:08.440 回答
0

的全部意义finish()在于说您的活动“已完成并且应该关闭”。如果你还没有完成,就不要打电话finish()

于 2012-07-10T04:42:13.110 回答
0

当您从 Activity A 转到 Activity B 时,Android 不会杀死 Activity A。Activity A 仍然存在于后台。但是,如果 Android 需要内存,它可以随时被杀死。

要保存活动的状态,您必须手动进行。

这是一个类似的问题,答案很好:Saving Android Activity state using Save Instance State

于 2012-07-10T04:46:02.743 回答
0

如果你想完成你的活动然后再次启动它只是为了加载一些新的配置,你可以调用活动的recreate()方法而不是调用finish()。调用 recreate() 会调用 onSaveInstanceState() 和 onRestoreInstanceState(),帮助你恢复之前的配置。

您可以查看此答案以获取更多详细信息:How do I restart an Android Activity

于 2015-04-28T14:09:50.943 回答