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

时间:2012-08-25 12:03:22

标签: android persistence

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

我正在寻找一些设计思路来解决我遇到的问题。我正在开发一个具有相当大的数据模型(1-2 MBytes)的游戏。这个模型存在于任何Activity之外,实际上有许多活动都与它相互作用。这些活动是短暂的,一直在进行着。

我目前在应用程序中保留了一个指向数据模型的指针,所有活动都通过它访问数据模型。我需要在我的应用程序被杀死的情况下保存该数据模型,但是每次活动命中onPause时都要保存它太慢,这在活动来来往往时经常发生。

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

我很感激任何建议。

1 个答案:

答案 0 :(得分:4)

  

我一直无法找到申请状态。

那是因为Android中没有“应用程序状态”,只不过是在Web应用程序中。

  

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

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

  

随着活动的来去经常发生

听起来好像你的活动太多了。

  

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

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

欢迎使用onUserLeaveHint(),在整个应用程序失去前景的情况下会调用{{1}},但对于像持久化数据模型这样重要的事情,我当然不会指望它。