【问题标题】:When to save the state of an app何时保存应用程序的状态
【发布时间】:2013-05-11 09:27:37
【问题描述】:

我正在开发一款 Android 游戏。现在,我将用户状态的所有更改(SQLite 中的匹配项、SharedPreferences 中的用户首选项以及文件中的其他数据)保存在主片段的 onDestroy() 方法中(该片段应该一直处于活动状态并且可以打开其他活动,例如帐户片段或播放片段)。

如果我通过 Back 按钮退出应用程序,一切正常,因为调用了主片段的 onDestroy()

问题是当我通过 Home 按钮退出时,或者当主要片段从操作系统中被杀死时。在这些情况下,不会调用 onDestroy(),因此不会保存游戏状态。

我知道如果我将游戏保存在onPause() 而不是onDestroy() 中,我可以解决这个问题,因为它总是被调用。但就我而言,存储操作非常大(SQLite + SharedPreferences + 文件,大量数据)并且在onPause() 中执行此操作意味着效率低下。

还有其他方法可以解决这个问题吗?

【问题讨论】:

  • 创建一个服务,在调用 onPause() 时传递意图中的所有数据,然后在该服务中执行其余操作。我还没有尝试过这只是一个想法,因为该服务会将您的主要工作从活动转移到后台

标签: android database storage lifecycle


【解决方案1】:

您是否尝试过这个解决方案 - http://nisha113a5.blogspot.com/2012/01/intercept-home-key-android.html

尝试钩住Home键按下,此时保存用户状态。

【讨论】:

  • 无论如何,拦截Home键是不够的,因为我可以简单地按一个条形通知退出应用程序。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-09
  • 1970-01-01
  • 2012-06-11
  • 2013-02-24
  • 1970-01-01
相关资源
最近更新 更多