【问题标题】:is it ok to inject content view using dagger2是否可以使用 dagger2 注入内容视图
【发布时间】:2017-06-14 15:49:50
【问题描述】:

我在我的 android 项目中使用 数据绑定,我也在 DI 中使用 dagger 2

基本上为了使用数据绑定设置内容视图,我需要做这样的事情:

LayoutClass layoutClass = DataBindingUtil.setContentView(Activity, Layout);

我在 dagger module 中提供 layoutClass 并将其注入到我的活动中。问题是,这是一个好习惯吗?

【问题讨论】:

  • 在代码中使用 dagger 有两个主要原因:解耦和可测试性。我认为没有理由这样做,因为无论如何内容视图都与活动紧密耦合,您不需要在测试中模拟它

标签: android dagger-2 android-databinding


【解决方案1】:

从技术上讲,您正在使用此定义一个循环参考。您只是没有收到警告,因为设置图表需要您对此保持积极主动。

当您明确地为模块提供活动时,依赖项看起来像activity -> layout -> activity。此外,您正在使用 DataBindingUtil.setContentView() 修改活动,因此提供了对活动的依赖,这实际上是活动本身的属性。

因此,永远不要为 Dagger 提供任何 UI。尤其不要参加活动。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-05-01
    • 1970-01-01
    • 2015-06-01
    • 2016-12-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多