2

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

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

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

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

有没有其他方法来管理这个?

4

1 回答 1

0

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

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

于 2013-05-16T13:36:01.260 回答