在交互器中注入 android mvp

Inject in interactor android mvp

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

这是我的互动器。

public class SplashInteractorImpl  implements SplashContract.Interactor {

    private SplashContract.Presenter presenter;
    @Inject
    PreferencesHelper preferences;

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

}

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

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

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

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

编辑: 要在您的交互器中注入首选项实用程序,只需在变量声明中调用@Inject:

public class MyInteractor{
    @Inject
    PreferencesUtil prefs;
}