【问题标题】:How to create activity context dependent object in dagger?如何在匕首中创建活动上下文相关对象?
【发布时间】:2016-12-09 10:49:15
【问题描述】:

我有一种情况,我已经使用 Dagger 2 注入了所有对象,但在一种情况下我无法纠正如何注入对象。

以下是情况

mPager.setAdapter(new MyPagerAdapter(this));

现在在上面的语句中,我必须使用 Dagger 注入 MyPagerAdapter 对象,但它需要当前的活动上下文。

那么如何将activity上下文转发到Dagger模块呢?

【问题讨论】:

  • 模块构造函数参数
  • @EpicPandaForce - 请添加一些代码解决上述情况会有帮助。
  • @Module @ActivityScope public class MyModule { private Activity activity; public MyModule(Activity activity) { this.activity = activity;} ...
  • @EpicPandaForce - 谢谢,我会试试的
  • 有人想把这个变成答案吗?我认为以前没有人问过这个确切的问题。

标签: android dependency-injection dagger-2 inject dagger


【解决方案1】:

(将@EpicPandaForce 的评论变成答案)

您可以编写一个在其构造函数参数中接受 Activity 的模块,如下所示:

@Module
@ActivityScope 
public class MyModule {
    private final Activity activity;

    public MyModule(Activity activity) {
        this.activity = activity;
    }

    @Provides
    @ActivityScope
    Activity activity() {
        return activity;
    }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-12-04
    • 2017-03-19
    • 1970-01-01
    • 1970-01-01
    • 2021-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多