我读过构造函数注入不需要模块。 所以我有这个问题。dagger2构造函数注入如何提供不依赖模块
如果我有这样的构造函数注入:
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不确定,我可以做一个回调来处理结果给主持人,但没有它,这是行得通的? – nani