小编use*_*300的帖子

主持人注射Dagger 2

我刚刚开始使用Dagger 2,我在网上发现了数千个指南,每个指南都有不同的实现,现在我有点困惑.所以基本上这就是我现在写的:

AppModule.java:

@Module
public class AppModule {

 Application mApplication;

 public AppModule(Application application) {
    mApplication = application;
 }

 @Provides
 @Singleton
 Application providesApplication() {
    return mApplication;
 }
}
Run Code Online (Sandbox Code Playgroud)

DataModule.java:

@Module
public class DataModule {

private static final String BASE_URL = "http://beta.fridgewizard.com:9001/api/";

@Provides
@Singleton
NetworkService provideNetworkService() {
    return new NetworkService(BASE_URL);
}

@Provides
@Singleton
SharedPreferences provideSharedPreferences(Application app) {
    return PreferenceManager.getDefaultSharedPreferences(app);
}
}
Run Code Online (Sandbox Code Playgroud)

PrefsModel.java:

@Module(includes = DataModule.class)
public class PrefsModel {

@Provides
@Singleton
QueryPreferences provideQuery(SharedPreferences prefs) {
    return new QueryPreferences(prefs);
}
}
Run Code Online (Sandbox Code Playgroud)

AppComponent.java(我暴露了QueryPreferences对象,因为我需要在演示者中使用它,希望以这种方式正确):

@Singleton …
Run Code Online (Sandbox Code Playgroud)

java mvp android dependency-injection dagger-2

11
推荐指数
2
解决办法
1万
查看次数

标签 统计

android ×1

dagger-2 ×1

dependency-injection ×1

java ×1

mvp ×1