【发布时间】:2017-05-22 15:25:02
【问题描述】:
我读过构造函数注入不需要模块。 所以我有这个问题。
-
如果我有这个构造函数注入:
private Model realmModel; @Inject public MainActivityPresenter(Model realmModel) { this.realmModel = realmModel; }
还有这个组件:
@Singleton
@Component(modules = {AppModule.class})
public interface AppComponent {
Model realmModel();
void inject(MainActivity activity);
}
如果在我的 MainActivity 我这样做:
((MyApp)getApplication()).createAppComponent().inject(this);
如何将realmModel 参数传递给演示者构造函数注入?
编辑:这是模型:
Presenter presenter;
@Inject
public RealmModel(Presenter presenter) {
this.presenter = presenter;
}
谢谢
【问题讨论】:
-
你这里有一个循环依赖,你应该尝试摆脱它。您的模型取决于演示者,而演示者取决于模型。因此,您也无法进行构造函数注入,因为在没有先创建另一个的情况下,两者都无法创建。您的模型真的需要保留对演示者的引用吗?
-
@DavidMedenjak 不确定,我可以进行回调以将结果处理给演示者,但没有它这行得通吗?
标签: android dependency-injection dagger-2 android-mvp