我想把我的单身人士注入服务类。
我尝试过,为每个服务创建一个模块,然后使用@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)保持为null。
感谢您的帮助