ApplicationComponent.java
Dagger2子组件模块覆盖
@Component(modules = SomeModule.class)
@ApplicationScope
public interface ApplicationComponent {
// stuff
ActivityComponent activityComponent();
}
ActivityComponent.java
@Subcomponent(modules = AnotherModule.class)
@ActivityScope
public interface ActivityComponent {
// stuff
void inject(MainActivity mainActivity);
}
SomeModule
可以使用类似this被重写。但AnotherModule
怎么样?
一个解决方案是将这两个组件分开,但是如果我想重新使用父项的某些绑定呢?
编辑:
MainActivity.java
onCreate(Bundle bundle) {
getApplicationComponent().getActivityComponent().inject(this);
}
EDIT2:
ActivityRyle.java
init() {
application.setComponent(DaggerApplicationComponent.builder()
.someModule(new TestSomeModule(application))
.build();
}
EDIT3:我试图避免Application
接线太多的东西(其中主组件被创建)。
请始终包含与您的问题相关的所有内容,并且不要只链接到外部样本。 –