何时保存应用程序的状态

时间:2013-05-16 13:03:37

标签: android database storage lifecycle

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

如果我通过返回按钮退出应用,则一切正常,因为主要片段的onDestroy()被调用。

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

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

还有其他办法来管理吗?

1 个答案:

答案 0 :(得分:0)

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

尝试勾选Home按钮,此时保存用户状态。