【问题标题】:Inject in interactor android mvp注入交互器android mvp
【发布时间】:2018-01-17 19:57:12
【问题描述】:

我需要从 dagger 模块向我的交互器注入我的偏好接口,所以我的问题是我是否需要在交互器中实例化组件以获得我的偏好? ,每个进程需要为我需要注入的任何类做些什么?

这是我的交互者。

public class SplashInteractorImpl  implements SplashContract.Interactor {

    private SplashContract.Presenter presenter;
    @Inject
    PreferencesHelper preferences;

    public SplashInteractorImpl(SplashContract.Presenter presenter){
        this.presenter=presenter;
    }

}

【问题讨论】:

    标签: android dependencies mvp inject


    【解决方案1】:

    所以我通常对共享首选项所做的是在我的应用程序模块中添加一个 providePreferences 方法。

        @Provides
        @Singleton
        public PreferencesUtil providesPreferences() {
            return new PreferencesUtil(application);
        }
    

    在上面的代码中,PreferencesUtil 是一个 util 类,它为我包装了一些偏好。通常对我来说,所有其他 dagger 组件都是应用程序组件的子组件。因此,我可以在任何我喜欢的地方访问(注入)首选项。

    此外,您的交互者是否应该为您的演示者提供参考?如果我错了,请纠正我,但 MVP 的 M 层应该使用某种回调结构(如 Observables)将结果传递给演示者。

    编辑: 要在 Interactor 中注入首选项工具,只需在变量声明中调用 @Inject:

    public class MyInteractor{
        @Inject
        PreferencesUtil prefs;
    }
    

    【讨论】:

    • 您好 Levi,感谢您的回答,事实上,我的模块应用程序中有一个 preferencesUtil。我的疑问是如何在我的交互器中注入这个 providePreferences ?如何在我的交互器中调用组件,我需要从我的偏好中获取数据以调用 api,并将答案发送回我的演示者。我是匕首的新手。非常感谢您的宝贵时间。
    猜你喜欢
    • 2016-06-15
    • 2021-05-29
    • 2016-10-02
    • 1970-01-01
    • 2017-01-03
    • 2017-03-23
    • 2018-04-07
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多