小编dra*_*siv的帖子

使用 Dagger 2 for Android MVP 设置模块和组件 - 具有多个片段的活动

我已经使用 Dagger 2 一段时间了,但我仍在尝试解决一些问题。我仍然管理得不好的一件事是为不同情况设置模块和组件,例如具有多个片段的活动。我见过很多实现,大多数时候都有点不同。

那么,让我公开一下我当前使用 MVP 的应用程序结构,如果我的实现是否正确,我想听听一些意见。

@Module
public final class ApplicationModule {

private Context mContext;


public ApplicationModule(Context context){
    mContext = context;
}


public ApplicationModule(){
    mContext = null;
}

@Provides
Context provideContext(){
    return mContext;
}

@Singleton
@Provides
public SharedPreferences getAppPreferences(){
    return mContext.getSharedPreferences("CalorieApp",Context.MODE_PRIVATE);
 }
}

@Singleton
@Component(modules = ApplicationModule.class)
public interface ApplicationComponent {

void inject(MainApplication mainApplication);

SharedPreferences sharedPreferences();

}
Run Code Online (Sandbox Code Playgroud)

在此 AppModule 中,我通常只会设置我的应用程序需要的 Singleton。就像 SharedPreferences 或与网络请求相关的任何内容。这个模块和组件在某种程度上是标准的,我总是通过这样创建它们来启动我的应用程序。

然后我为 Activity 设置模块和组件,它将依赖于 ApplicationComponent

@Module
public class ActivityModule {

private Activity activity;

public ActivityModule(Activity activity){
    this.activity …
Run Code Online (Sandbox Code Playgroud)

mvp android dagger dagger-2

5
推荐指数
1
解决办法
1149
查看次数

标签 统计

android ×1

dagger ×1

dagger-2 ×1

mvp ×1