当应用程序关闭并重新启动时,如何继续上一个活动?

Posted

技术标签:

【中文标题】当应用程序关闭并重新启动时,如何继续上一个活动?【英文标题】:How to continue on the last activity when the app is closed and started again? 【发布时间】:2018-03-13 10:35:48 【问题描述】:

因此,对于本学期的 android 课程,我们正在制作自己选择的应用程序,由于缺乏创意,我决定采用文字冒险风格的游戏。没什么太复杂的,我知道。我确保有创意并结合手机的许多不同功能,例如加速度计和摄像头。但我离题了。

我已经开始计划应用程序应该如何工作,以及我应该如何对其进行编码,但是我很早就遇到了一个障碍,我需要找到一个解决方案。我正计划创建它,以便将玩家从一个活动发送到另一个活动,我认为这是最好的方法,除非我做一个随着玩家的进步而不断滚动的活动。因此,我需要一种方法来实现它,以便当玩家完全关闭应用程序时,它会“继续”关闭前的最后一个活动,因此以某种方式保存进度。

我不确定这是否可行,如果可以,是否有其他方法可以达到相同的结果?

【问题讨论】:

您可以使用SharedPreferences 保存用户状态并在需要时检索它。您的工作是根据此状态实现逻辑以转到正确的屏幕/活动。 当您说“保存用户状态”时,您的意思是它保存了用户在操作发生时所处的屏幕/活动吗? 如何对用户状态进行建模取决于您。例如,对于图书阅读器应用程序,您可以保存用户离开应用程序时正在阅读的最后一页,并在他返回时从同一页继续阅读。 【参考方案1】:

您无法以编程方式更改开始活动。您可以将要开始的活动保存在文件中,并在每次应用程序启动时从主活动重定向到此活动(在主活动的 onCreate() 方法上)。

正如它所说的here。

【讨论】:

好的,所以基本上,不可能按照我的想法去做,因为每次玩家启动应用程序时,我想开始的活动都会改变。 您可以在每次用户在您的游戏中进行时使用当前活动更新文件。【参考方案2】:

正如有人建议的那样,将当前状态(即:Activity 当前显示的内容)保存在SharedPreferences 中。当用户启动您的应用程序时,将启动根 Activity(具有 ACTION=MAIN 和 CATEGORY=LAUNCHER 的那个)。在根ActivityonCreate() 中,从SharedPreferences 读取保存的状态并立即启动Activity

【讨论】:

以上是关于当应用程序关闭并重新启动时,如何继续上一个活动?的主要内容,如果未能解决你的问题,请参考以下文章

当应用程序在android上关闭时如何阻止重新启动服务?

当应用程序重新启动并最小化时启动新活动

重新启动活动时,Android Wear 上的融合位置提供程序会导致崩溃

如何在后台启动活动并立即关闭它?

按HOME后重新启动应用程序时如何返回最新启动的活动?

关闭并重新打开应用程序时Android崩溃