我正在构建一款Android游戏。现在,我在主片段的onDestroy()
方法中保存用户状态的所有更改(在SQLite中匹配,在SharedPreferences中的用户首选项以及文件中的其他数据)(该片段应始终处于活动状态,并且可以打开其他活动,例如帐户片段或播放片段。
如果我通过返回按钮退出应用,则一切正常,因为主要片段的onDestroy()
被调用。
问题是当我通过 Home 按钮退出,或者主要片段从操作系统中被杀死时。在这些情况下,不会调用onDestroy()
,因此不会保存游戏的状态。
我知道如果我将游戏保存在onPause()
而不是onDestroy()
,我可以解决这个问题,因为它总是被调用。但是在我的情况下,存储操作非常大(SQLite + SharedPreferences +文件,大量数据)并且在onPause()
中执行此操作意味着效率低下。
还有其他办法来管理吗?
答案 0 :(得分:0)
您是否尝试过此解决方案 - http://nisha113a5.blogspot.com/2012/01/intercept-home-key-android.html?
尝试勾选Home按钮,此时保存用户状态。