如何解决正确的MVVM连接管理和数据缓存策略
我正在开发一个 Android 应用程序(使用 MVVM ),并且我试图为通过Retrofit从REST API提取的我的模型之一实现Room DB缓存。
我的问题是:将我的缓存/获取逻辑存储在存储库中以及进行网络连接检查(使用 ConnectivityManager )来指示是从网络还是从房间获取数据是否正确?数据库缓存?我问是因为 ConnectivityManager 需要实例化 Activity-level 上下文,并且将其一直传递到存储库对我而言在MVVM方面听起来不正确(而且我不确定它是否可以工作,因为我想使用 ApplicationContext 实例化它,而且我还没有看到有人那样做。
我也不想尝试请求测试连通性,因为这破坏了将Room DB用作所有数据和的单一真相的全部目的。相当无用的请求。
我可以实施这种连接检查并处理所有可能性的唯一其他方法是通过Google的 NetworkBoundResource 非官方代码摘录,但是我想知道是否还有其他人可以找到更好的解决方案。我还计划将最近一次从API提取的时间保存为我的存储库中的一个属性(并在每次API调用后对其进行更新),但是我担心这可能会导致某些紧密耦合和整体不稳定的体系结构。如果有人能解决我的问题,那将非常有帮助。
我愿意尝试一下,但我认为我不能在不浪费一切的情况下进入顶空。
谢谢!
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。