Sam*_*tas 5 java android dependency-injection dagger-2
我想将我的单身人士对象注入服务类。
我尝试过,为每个服务创建一个模块,然后使用@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);
}
}
Run Code Online (Sandbox Code Playgroud)
我对我的活动和片段遵循相同的策略,但对于服务不起作用,我不知道错误。
编辑 1:添加错误:
嗨,我确实忘记写我的例子了。没有错误,但预期的实例(SessionManager sessionManager)保持为空。
谢谢你的帮助
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |