在其模块中引用 Activity
Referencing the Activity inside its module
如何使用新的 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);
}
您现在可以抽象出简单的模块。您的演示者也可以注入构造函数。
这实际上从我所有的模块中删除了很多代码。
如何使用新的 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);
}
您现在可以抽象出简单的模块。您的演示者也可以注入构造函数。
这实际上从我所有的模块中删除了很多代码。