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

android在onPause或onDestroy中保存游戏状态?,android,Android,我正在尝试为我正在开发的游戏实现一个“恢复”功能。其工作应如下: 如果用户开始游戏,然后在结束后关闭游戏,则保存游戏状态。再次打开应用程序时,将提供“恢复”选项 如果活动仅暂停(例如,由于电话呼叫而最小化)且用户返回,则应显示正在进行的游戏。它不应该终止并保存状态,当然,除非操作系统决定终止该活动 我决定在大多数情况下使用SharedReferences,并使用自定义文件来保存额外信息。我看到很多人建议用onPause()方法保存程序的状态,我一直在想为什么会这样 据我所知,使用OnDest

我正在尝试为我正在开发的游戏实现一个“恢复”功能。其工作应如下:

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

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

我决定在大多数情况下使用SharedReferences,并使用自定义文件来保存额外信息。我看到很多人建议用
onPause()
方法保存程序的状态,我一直在想为什么会这样

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

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

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

你是:)<代码>onDestroy()不保证被调用。请参见:

注意:不要指望调用此方法作为保存数据的位置!例如,如果活动正在编辑内容提供程序中的数据,则这些编辑应在onPause()或onSaveInstanceState(捆绑包)中提交,而不是在此处提交。此方法通常用于释放资源,如与活动关联的线程,以便在其应用程序的其余部分仍在运行时,已销毁的活动不会留下此类内容。在某些情况下,系统会简单地终止活动的宿主进程,而不在其中调用此方法(或任何其他方法),因此不应使用它来执行在进程结束后仍保留的操作


谢谢你,布莱恩。我觉得没有检查文档很愚蠢!看起来是onPause(),然后:)