当应用程序关闭并重新启动时,如何继续上一个活动?
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 的那个)。在根Activity
的onCreate()
中,从SharedPreferences
读取保存的状态并立即启动Activity
。
【讨论】:
以上是关于当应用程序关闭并重新启动时,如何继续上一个活动?的主要内容,如果未能解决你的问题,请参考以下文章