我的应用程序中有几个活动。它们都MySingleton
用于读取和存储一些数据。
- 单例的状态在第一次访问时从文件中加载。
- 状态经常变化。
- 状态不是那么小(~1MB)。
- 这个单例类似于我的应用程序的模型。
因此,我只想在不再发生更改时才将其存储到文件中——在停止所有活动之后。我该怎么做?
我的应用程序中有几个活动。它们都MySingleton
用于读取和存储一些数据。
因此,我只想在不再发生更改时才将其存储到文件中——在停止所有活动之后。我该怎么做?
最终,由于潜在的应用程序崩溃/内存不足/电池耗尽的情况,存储离散状态更改将提供最佳用户体验。
话虽如此,假设您处于保证不执行上述操作的情况:您可以在每个 Activity 恢复时注册一个具有粘性的服务,在它暂停时取消注册一个 Activity,如果没有更多注册的 Activity 则保存状态,最后停止服务。您还可以使用绑定来促进该行为(例如绑定到服务,在上次绑定未绑定时保存状态)。
由于 Android 的特性及其进程和内存管理,您无法 100% 保证您的活动和应用程序将通过某些检查点,您可以在这些检查点中安全地存储您的状态。
在我看来,最好的方法是在状态发生变化时存储它们。你的整个状态每次都会改变吗?大概只是其中的一部分。创建一个数据库并仅存储每次更改时更改的内容 - 这将是您最安全的选择。