我有一个需要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
时这样做?