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);
    }
}
我对我的活动和片段遵循相同的策略,但对于服务不起作用,我不知道错误。
编辑 1:添加错误:
嗨,我确实忘记写我的例子了。没有错误,但预期的实例(SessionManager sessionManager)保持为空。
谢谢你的帮助
| 归档时间: | 
 | 
| 查看次数: | 1207 次 | 
| 最近记录: |