在应用程序退出时保存 Android 应用程序数据

use*_*010 4 android persistence

似乎有大量关于保存Activity状态的信息,但我一直无法找到很多关于查找应用程序状态的信息。

我正在寻找一些设计理念来解决我遇到的问题。我正在开发一个具有相当大数据模型(1-2 MB)的游戏。该模型存在于任何 Activity 之外,实际上有许多与之交互的 Activity。这些活动是短暂的,一直来来去去。

我目前在我的应用程序中保留一个指向数据模型的指针,所有活动都通过它访问数据模型。我需要在我的应用程序被终止的情况下保存该数据模型,但是每次活动点击 onPause 时保存它太慢了,这在活动来来去去时非常频繁。

我需要的是一种确定我的应用程序(以及我的数据模型)是否被销毁的方法。我已经广泛搜索了此方法或回调,但结果为空。

我将不胜感激任何建议。

Com*_*are 5

我一直无法在查找应用程序状态时找到很多内容。

那是因为在 Android 中没有“应用程序状态”,就像在 Web 应用程序中一样。

但每次活动点击暂停时保存它太慢了

虽然您的整个数据模型可能是“1-2 MB”,但对于任何给定的更改,更改的数据量将是其中的一小部分。使用后台线程并且只修改已更改的数据。

随着活动的来来去去,这种情况经常发生

听起来您的活动可能太多了。

我需要的是一种确定我的应用程序(以及我的数据模型)是否被销毁的方法

这是不可能的。你永远不会发现你正在被摧毁。Android 可以并且将会在没有警告的情况下终止您的进程,无论是应用户请求(例如,强制关闭、任务杀手)还是出于操作系统原因(例如,需要 RAM 来处理来电)。

欢迎您使用onUserLeaveHint(),当您的整个应用程序失去前景时,它会在许多情况下被调用,但我当然不会指望它来处理像持久化数据模型这样重要的事情。