在交互式android mvp中注入

时间:2017-08-09 19:16:42

标签: android dependencies mvp inject

我需要在我的交互器中注入来自dagger模块的prefrerences接口,所以我的问题是我是否需要在我的交互器中使用实例组件来获取我的偏好? ,每个进程需要为我需要注入的任何类进行吗?

这是我的交互者。

public class SplashInteractorImpl  implements SplashContract.Interactor {

    private SplashContract.Presenter presenter;
    @Inject
    PreferencesHelper preferences;

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

}

1 个答案:

答案 0 :(得分:0)

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

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

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

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

修改 要在Interactor中注入首选项util,只需在变量声明中调用@Inject:

public class MyInteractor{
    @Inject
    PreferencesUtil prefs;
}