引用其模块内的Activity

时间:2017-03-24 18:00:42

标签: android dagger-2

如何使用新的AndroidInjector.inject并仍然能够在活动模块中提供活动实例? Dagger文档没有明确说明如何存档。

用例如下:我有一个活动模块,它为我的活动提供了一个Presenter,但是Presenter需要一个对活动的引用。 我曾经有类似

的东西
@Inject Presenter presenter;

public onCreate(Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   ((CustomApplication) getApplicationContext())
       .getAppComponent()
       .plus(new ActivityModule(this));
}

有人可以指向我使用AndroidInjector.inject(this)的样本,并允许在Dagger 2模块中引用Activity吗?

1 个答案:

答案 0 :(得分:4)

检查Dagger 2 Github issue 615

自动提供Activity的实例,只需将其作为模块方法中的参数传递。

示例:

2 --> [0]
4 --> [1]

您现在可以抽象出简单的模块。你的演示者也可以注入构造函数。

这实际上从我的所有模块中删除了很多代码。