作为 Android 开发的初学者,我试图通过将我的第一个应用程序转换为推荐的 MVVM 结构来清理我的代码库。我目前坚持的是,试图找出存储我的视图模型状态的最佳方式。
在这个例子中,我需要存储的状态只是一个字符串的 ArrayList(指示选中了 recyclerview 中的哪些复选框)。我目前将此 ArrayList 作为字段存储在我的 ViewModel 中,包装在我的活动观察的 MutableLivedata 对象中。从长远来看,这种将 ViewModel 状态存储为字段的方法似乎并不可行。我可以想象随着我的应用程序的增长,我的 ViewModel 类会变得非常臃肿和凌乱。
我目前使用 Firebase 实时数据库来存储我需要持久化的数据,就像 Android 架构推荐的那样通过存储库访问。然而,我的 ViewModel 的状态在应用程序关闭后不需要保留,因此为它对我的 Firebase 数据库进行网络调用绝对没有意义。
我的问题是:在哪里保存 ViewModel 的状态最有意义?我在我面前看到的半明智的选择是将它保存为我的 ViewModel 类中的字段(我当前的方法),将其保存在 Room 数据库中(并在每次应用程序被杀死时重置数据库),或将其保存为字段在我的存储库类中(似乎不对)。我愿意接受建议!
这取决于您的需求:
无论如何,远程存储数据似乎不是您正在寻找的解决方案。
由于 Android 系统内存回收情况,我也不会依赖内存缓存解决方案。
您可以使用缓存解决方案,并在再次打开应用程序时清除缓存。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句