如何使用新的 AndroidInjector.inject
并且仍然能够在 Activity 模块中提供 Activity 实例? Dagger 文档没有明确说明如何存档。
用例如下:我有一个 Activity 模块,它为我的 Activity 提供了一个 Presenter,但 Presenter 需要对 Activity 的引用。 我曾经有过类似的东西
@Inject Presenter presenter;
public onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((CustomApplication) getApplicationContext())
.getAppComponent()
.plus(new ActivityModule(this));
}
谁能给我指出一个使用 AndroidInjector.inject(this)
并允许在 Dagger 2 模块中引用 Activity 的示例?
最佳答案
Activity 的实例是自动提供的,只需将其作为参数传递到模块方法中即可。
例子:
@Provides
@ActivityScope
public providePresenter(ActivityA activity) {
return new PresenterA(activity);
}
您现在可以抽象出简单的模块。您的演示者也可以注入(inject)构造函数。
这实际上从我所有的模块中删除了很多代码。
关于android - 在其模块中引用 Activity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43006277/