何时保存模型状态?

时间:2013-10-05 19:05:50

标签: android

我的申请中有几项活动。所有这些都使用MySingleton来读取和存储一些数据。

  • 首次访问时从文件加载单例的状态。
  • 状态经常变化。
  • 状态不是那么小(约1MB)。
  • 这个单例类似于我的应用程序的模型。

因此,我想在停止所有活动后,只有在不再发生更改时才将其存储到文件中。我该怎么办?

2 个答案:

答案 0 :(得分:0)

最终,由于潜在的应用程序崩溃/低内存/电池拉动情况,存储离散状态更改将提供最佳用户体验。

那说并假设您处于一种保证不执行上述操作的情况:您可以使用粘性服务注册每个活动,在暂停时取消注册活动,如果没有更多注册活动则保存状态,最后停止服务。您还可以使用绑定来促进该行为(例如绑定到Service,在最后绑定未绑定时保存状态)。

答案 1 :(得分:0)

由于Android及其流程和内存管理的性质,您无法100%保证您的活动和应用程序将通过您可以安全存储您的州的某些检查点。

我认为最好的方法是在状态发生时将更改存储起来。你的整个州每次都会改变吗?可能只是其中的一部分。创建一个数据库并仅存储每次更改时的更改 - 这将是您最安全的选择。