28

我已经开始在我的应用程序中使用架构组件,我仍在学习如何使用它。

在我的应用程序中,我有一个 Activity 按顺序显示不同的片段。在其中一些中,我需要与后台服务通信,以便从外部 BLE 传感器接收数据。由于我需要在多个 Fragment 中与服务交互,我想知道 ViewModel 是否是进行绑定的正确位置。我环顾四周,但没有找到答案。

在 ViewModel 中绑定服务是否有任何问题?

4

1 回答 1

16

不建议在 ViewModels 中使用 Android 框架类。

以下是 Google Developers 博客文章中的链接,其中包含详细说明:ViewModels 和 LiveData:Patterns + AntiPatterns

理想情况下,ViewModel 不应该对 Android 有任何了解。这提高了可测试性、泄漏安全性和模块化。一般的经验法则是确保您的 ViewModel 中没有 android.* 导入(android.arch.* 等例外情况除外)。这同样适用于演讲者。

不要让 ViewModel(和 Presenters)知道 Android 框架类

于 2018-02-20T06:37:35.990 回答