java如何使用Dagger 2.11+将依赖项注入服务流程?
我想把我的单例对象注入服务类
我尝试过,为每个服务创建一个模块,然后使用@ContributesAndroidInjector在AppComponent上包含
举个例子说明我是如何做到这一点的
@Singleton
@Component(modules = {
AndroidInjectionModule.class,
AppModule.class,
ServiceBuilder.class
})
public interface AppComponent {
@Component.Builder
interface Builder {
@BindsInstance
Builder application(Application application);
AppComponent build();
}
void inject(ApplicationController app);
}
@Module(includes = DataManagerModule.class)
class AppModule {
@Provides
@Singleton
Context provideContext(Application application) {
return application;
}
@Provides
@Singleton
BaseSchedulerProvider provideSchedulerProvider() {
return SchedulerProvider.getInstance();
}
@Provides
@Singleton
SessionManager provideSessionManager(Application application) {
return SessionManagerImpl.from(application);
}
}
@Module
public abstract class ServiceBuilder {
@PerService
@ContributesAndroidInjector
abstract MyService bindMyService();
}
public class MyService extends IntentService {
@Inject
SessionManager sessionManager;
@Override
public void onCreate() {
super.onCreate();
AndroidInjection.inject(this);
}
}
对于我的活动和片段,我也遵循同样的策略,但对于服务,我不知道错误所在
编辑1:添加错误:
嗨,我忘了写我的例子了。没有错误,但预期的实例(SessionManager SessionManager)保持空
谢谢你的帮助
共 (0) 个答案