android 在 onPause 或 onDestroy 中保存游戏状态?

2024-01-04

我正在尝试为我正在开发的游戏实现“恢复”功能。它应该按如下方式工作:

  • 如果用户开始游戏并稍后关闭游戏并完成,则保存游戏状态。再次打开应用程序时,将提供“恢复”选项。

  • 如果活动只是暂停(例如,由于电话而最小化)并且用户返回,则它应该显示游戏正在进行中。它不应该终止并保存状态,当然,除非操作系统决定终止该活动。

我决定在很大程度上使用 SharedPreferences 以及自定义文件来保存额外信息。我看到很多人建议将程序的状态保存在onPause()方法,我一直想知道为什么会出现这种情况。

据我所知,使用OnDestroy()会更好。onPause()并不意味着该活动将被终止,因此我在保存游戏状态时可能会浪费时间。我检查了我的程序并onDestroy()在适当的时间被调用。因此,我假设我没有泄漏,可以防止活动被破坏。

尽管如此,我找不到任何建议将状态保存在onDestroy()每个人似乎都推荐使用onPause。我在这里遗漏了一条信息吗?


尽管如此,我找不到任何建议在 onDestroy() 中保存状态的地方,而且每个人似乎都建议使用 onPause。我在这里遗漏了一条信息吗?

你是 :)。onDestroy()不保证被调用。看文档 http://developer.android.com/reference/android/app/Activity.html#onDestroy%28%29 for it:

注意:不要指望调用此方法作为保存数据的地方!例如,如果某个活动正在内容提供程序中编辑数据,则这些编辑应在 onPause() 或 onSaveInstanceState(Bundle) 中提交,而不是在此处提交。此方法通常用于释放资源(例如与活动关联的线程),以便被破坏的活动在其应用程序的其余部分仍在运行时不会留下此类资源。在某些情况下,系统将简单地终止活动的托管进程,而不调用其中的此方法(或任何其他方法),所以它不应该被用来做那些在进程消失后仍然存在的事情。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

android 在 onPause 或 onDestroy 中保存游戏状态? 的相关文章

随机推荐