在开发Android应用程序时,我遇到了一个问题。我刚开始使用Dagger,所以我知道一些基本概念,但是当在教程之外使用它时,事情变得不太清楚。
因此,为了进入正题。在我的应用程序中,我正在使用MVP,如此博客文章中所述:http://antonioleiva.com/mvp-android/ 所以起初我将Interactor类(处理数据的类)注入到Presenter类中,一切都很好。但是后来我实现��使用SQLite数据库的方法,因此现在需要在我的Interactor类中使用Context。
我无法弄清楚应该如何正确地做这件事?我的临时解决方案是从我的应用程序中排除Dagger,并在创建Presenter类和Presenter内部的Interactor类时通过构造函数传递Context变量,但我想使用Dagger。
因此,我的当前应用程序看起来有点像这样。
在
因此,为了进入正题。在我的应用程序中,我正在使用MVP,如此博客文章中所述:http://antonioleiva.com/mvp-android/ 所以起初我将Interactor类(处理数据的类)注入到Presenter类中,一切都很好。但是后来我实现��使用SQLite数据库的方法,因此现在需要在我的Interactor类中使用Context。
我无法弄清楚应该如何正确地做这件事?我的临时解决方案是从我的应用程序中排除Dagger,并在创建Presenter类和Presenter内部的Interactor类时通过构造函数传递Context变量,但我想使用Dagger。
因此,我的当前应用程序看起来有点像这样。
MyActivity implements MyView {
MyPresenter p = new MyPresenter(this, getApplicationContext());
}
MyPresenter中的构造函数
MyPresenter(MyView view, Context context) {
this.view = view;
MyInteractor i = new MyInteractor(context);
}
在
MyInteractor
的构造函数中,我将Context
赋值给一个私有变量。我只需要将MyInteractor
注入到MyPresenter
中,因为这是应用程序的一部分,需要针对不同的实现进行测试。但如果也可以将MyPresenter
注入到MyActivity
中,那就太好了 :) 我希望有人能够对我所尝试实现的内容有些经验 :)
RootModule
如何获取BaseApplication
的呢? - theblang