我已经开始在我的应用程序中使用Architecture Components,而且我还在学习如何使用它。
在我的应用程序中,我有一个活动按顺序显示不同的碎片。在其中一些我需要与后台服务进行通信,以便从外部BLE传感器接收数据。由于我需要在多个片段中与服务进行交互,因此我想知道ViewModel是否是进行绑定的正确位置。 I've looked around但我没有找到答案。
在ViewModel中绑定服务有什么问题吗?
答案 0 :(得分:6)
不建议在ViewModels中使用Android框架类。
以下是Google Developers博客文章中的链接,其中包含详细说明:ViewModels and LiveData: Patterns + AntiPatterns
理想情况下,ViewModels不应该对Android有任何了解。这个 提高可测试性,泄漏安全性和模块化。一般规则 拇指是为了确保你的。中没有android。* import ViewModels(有例如android.arch。*)。这同样适用于 主持人。
不要让ViewModels(和Presenters)了解Android框架 类