使用@ContributesAndroidInjector

时间:2017-07-07 14:05:39

标签: java android dagger-2

我有一个需要Activity实例的服务,并想知道在使用@ContributesAndroidInjector注释时是否可以这样做:https://google.github.io/dagger//android.html。我希望将服务范围限定为活动,并且它必须可用于多个不同的活动。

public class MyService {
    @Inject
    public MyService(Activity activity) { }
}

活动模块的代码:

@ContributesAndroidInjector(modules = { MyActivityModule.class })
abstract YourActivity contributeYourActivityInjector();

我不确定如何正确设置,并尝试了无数不同的变化,但主要是错误说明"活动"无法实例化。

MyActivityModule为活动中使用的片段提供AndroidInjector个实例,并且我尝试添加@Provides带注释的方法,该方法接收YourActivity并返回{{1但是那也不起作用。

有人能指出我正确的方向吗?是否可以使用@ContributesAndroidInjector?如果没有,我需要做什么来提供活动,并正确地使用服务范围?我可以看到如何使用vanilla Dagger2并在注入之前在onCreate中设置活动,但是如何在使用MyService时这样做?

0 个答案:

没有答案