Java 使用@ContributesAndroidInjector注入作用域活动

Java 使用@ContributesAndroidInjector注入作用域活动,java,android,dagger-2,Java,Android,Dagger 2,我有一个服务需要一个活动实例,不知道在使用@ContributesAndroidInjector注释时是否可以这样做,如下所述:。我希望服务的作用域是活动,并且它必须可用于多个不同的活动 public class MyService { @Inject public MyService(Activity activity) { } } 活动模块的代码: @ContributesAndroidInjector(modules = { MyActivityModule.class

我有一个服务需要一个活动实例,不知道在使用@ContributesAndroidInjector注释时是否可以这样做,如下所述:。我希望服务的作用域是活动,并且它必须可用于多个不同的活动

public class MyService {
    @Inject
    public MyService(Activity activity) { }
}
活动模块的代码:

@ContributesAndroidInjector(modules = { MyActivityModule.class })
abstract YourActivity contributeYourActivityInjector();
我不知道如何正确设置,并且尝试了无数不同的变体,但大多数情况下都会出现错误,说明“活动”无法实例化

MyActivityModule
为活动中使用的片段提供了
androidject
实例,我尝试添加@provides注释方法,该方法接受
YourActivity
并返回
MyService
,但也不起作用


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

活动是用户所做的事情。这个例外让老师猜测我会重新表述@efekctive所说的:你不是那个创建活动的人,是框架做的。但是通过该声明,您正试图向
服务的构造函数提供
活动
实例。显然,您还没有指定如何创建此活动,dagger是不明智的。您的用例是什么?为什么需要在构造函数中注入活动?从较高的层次来看,服务似乎是活动需要的东西。我需要活动或上下文来提供活动生命周期范围内的Glide服务实例。