查看一些示例,我能够使用 Dagger 2.11 来处理活动和片段,但是,在使用 Retrofit + RxJava 创建用于调用 Web 服务的模块时,我没有取得任何进展。对不起,如果这是一个重复的问题,我在这里没有找到解决方案。
按照下面的我的应用程序代码:
应用程序.java
public class App extends Application implements HasActivityInjector {
@Inject
DispatchingAndroidInjector<Activity> activityDispatchingAndroidInjector;
@Override
public void onCreate() {
super.onCreate();
DaggerAppComponent.builder().create(this).inject(this);
if (BuildConfig.DEBUG) {
Timber.plant(new Timber.DebugTree());
} else {
Fabric.with(this, new Crashlytics());
Timber.plant(new FirebaseCrashReportingTree());
}
}
@Override
public AndroidInjector<Activity> activityInjector() {
return activityDispatchingAndroidInjector;
}
}
应用组件.java
@Singleton
@Component(modules = {
AppModule.class})
interface AppComponent extends AndroidInjector<App> {
@Component.Builder
abstract class Builder extends AndroidInjector.Builder<App> {
}
}
应用模块.java
@Module(includes = {AndroidInjectionModule.class})
abstract class AppModule {
@Binds
@Singleton
abstract Application application(App app);
@PerActivity
@ContributesAndroidInjector(modules = MainActivityModule.class)
abstract MainActivity mainActivityInjector();
}