处理必须在Android活动生命周期之外保留的数据的最佳实践?

时间:2018-10-10 19:03:09

标签: android architecture

当我查看有关Android应用程序体系结构最佳做法的文档时,所有推荐的体系结构(MVVM,MVP等)似乎都将数据模型与视图生命周期相关联。视图持有对模型的引用的viewmodel / presenter的引用,因此当视图消失时,数据也消失了。但是只要我的应用处于打开状态,我就需要保留数据。

我知道SharePreferences,但是我的数据似乎太结构化了。我不想像内部存储或sqlite那样从文件中写入和重新读取数据,因为我保留这些数据的全部目的是避免这样的调用。我唯一想到的另一种选择是将数据存储在一个单例中,但这似乎不是最优的,因为那样我就必须跟踪单例是否已初始化。

是否有Android最佳实践来管理此类持久数据?

1 个答案:

答案 0 :(得分:1)

我认为,更改配置后保存应用程序状态的最佳方法是将数据模型保存在内存中。

因此,您允许重新创建活动,但是presenter / viewmodel必须保持不变。

对于AAC,这已经实现(ViewModelStore),也已经在某些MVP框架(例如Moxy)中实现,或者您可以在DI中使用local-singleton手动实现它。

也许我的答案正是@Gabe Sechan想说的。