如何在Dagger中将模块组件附加到AppComponent?

时间:2018-11-22 20:06:21

标签: android kotlin dagger

我阅读了许多Dagger 2 for Android的标题和示例。每个示例都显示我可以将模块组件附加到CoreComponent\AppComponent。每个示例都展示了CoreComponent知道自己要包含的内容的方式。

enter image description here

但是我想避免这种方式,因为我的CoreComponent\AppComponent处于较低级别-所有模块都知道CoreComponentCoreComponent一无所知。

enter image description here

我阅读了很多示例,但没有找到任何解决方案。

我试图创建类似这样的东西:

@ActivityScope
@Component(
    dependencies = [CoreComponent::class],
    modules = [NetworkModule::class]
)
interface ModuleOneComponent {
    fun inject(moduleOneActivity: ModuleOneActivity)
}

但是我堆满了这一行:

    fun inject(moduleOneComponent: ModuleOneActivity)

根据this教程,借助新的AndroidInjector机制,我不能再使用注入方法。

    DaggerModuleOneComponent.builder()
        .coreComponent(getCoreComponent())
        .build()
        // CAN'T DO THIS
        .inject(this)

所以,我不知道如何实现自己的首选方式。

0 个答案:

没有答案