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

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

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

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

【问题讨论】:

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

标签: android android-activity activity-lifecycle


【解决方案1】:

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

正如它所说的here

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 2021-06-11
    • 2012-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-12
    • 2011-09-19
    相关资源
    最近更新 更多