我阅读了许多Dagger 2 for Android的标题和示例。每个示例都显示我可以将模块组件附加到CoreComponent\AppComponent
。每个示例都展示了CoreComponent知道自己要包含的内容的方式。
但是我想避免这种方式,因为我的CoreComponent\AppComponent
处于较低级别-所有模块都知道CoreComponent
,CoreComponent
一无所知。
我阅读了很多示例,但没有找到任何解决方案。
我试图创建类似这样的东西:
@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)
所以,我不知道如何实现自己的首选方式。