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
接線太多的東西(其中主組件被創建)。
請始終包含與您的問題相關的所有內容,並且不要只鏈接到外部樣本。 –