我正在构建一个安卓游戏。现在,我将用户状态的所有更改(SQLite 中的匹配项、SharedPreferences 中的用户首选项以及文件中的其他数据)保存在onDestroy()
主片段的方法中(该片段应该一直处于活动状态并且可以打开其他活动,例如作为帐户片段或播放片段)。
如果我通过后退按钮退出应用程序,则一切正常,因为onDestroy()
调用了主片段。
问题是当我通过主页按钮退出时,或者当主要片段被操作系统杀死时。在这些情况下,onDestroy()
不会调用,因此不会保存游戏状态。
我知道如果我将游戏保存在onPause()
而不是,我可以解决这个问题onDestroy()
,因为它总是被调用。但就我而言,存储操作非常大(SQLite + SharedPreferences + 文件,大量数据)并且这样做onPause()
意味着效率低下。
有没有其他方法来管理这个?