AndroidInjector
имеет предопределенный метод inject
, но в остальном обрабатывается так же, как и любой @Component
. Итак, я полагаю, вы можете написать свой собственный AppComponent.Builder
с нуля:
// In AppComponent, which extends AndroidInjector<MyApplication>
@Component.Builder
interface Builder {
Builder coreComponent(CoreComponent coreComponent);
// You may need this for installed @Modules too:
// public abstract Builder appModule(AppModule appModule);
// The following setter and build are from AndroidInjector.Builder
@BindsInstance
Builder myApplication(MyApplication myApplication);
AppComponent build();
}
Затем построить AppComponent
:
CoreComponent coreComponent = /* ... */;
AppComponent appComponent =
DaggerAppComponent.builder()
.coreComponent(coreComponent)
.myApplication(myApplication)
.build();
Я не могу комментировать, рекомендуется ли это, хотя, поскольку dagger.android
примеры, похоже, предпочитают субкомпоненты, а не зависимости компонентов.