【发布时间】:2021-03-30 07:00:13
【问题描述】:
作为 Android 开发的初学者,我试图通过将我的第一个应用程序转换为推荐的 MVVM 结构来清理我的代码库。我目前所坚持的是试图找出存储我的视图模型状态的最佳方法。
在这个例子中,我需要存储的状态只是一个字符串的 ArrayList(表示选中了 recyclerview 中的哪些复选框)。我目前将此 ArrayList 作为一个字段存储在我的 ViewModel 中,包装在我的活动观察到的 MutableLivedata 对象中。从长远来看,这种将 ViewModel 状态存储为字段的方法似乎不可行。我可以想象随着我的应用程序的增长,我的 ViewModel 类会变得非常臃肿和混乱。
我目前使用 Firebase 实时数据库来存储我需要持久化的数据,并按照 Android 架构的建议通过存储库进行访问。但是,我的 ViewModel 的状态不需要在应用关闭后保留,因此为它对我的 Firebase 数据库进行网络调用绝对没有意义。
我的问题是:在哪里保存 ViewModel 的状态最有意义?我看到的半明智选项是将其保存为 ViewModel 类中的字段(我目前的方法),将其保存在 Room 数据库中(并在每次应用程序被终止时重置数据库),或将其保存为我的存储库类中的字段(似乎不正确)。我愿意接受建议!
【问题讨论】:
标签: java android kotlin mvvm viewmodel