我想用Dagger 2创建一个UserScope,为几个活动提供用户。当用户登录时,Dagger将用户注入这些活动,并且一旦用户注销,该实例必须为空,直到下次登录。 这是我到目前为止所做的: 用户范围:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface UserScope {
}
用户组件:
Dagger生成错误,指出BaseActivity应该是一个模块
@UserScope
@Subcomponent(
modules = {
UserModule.class,
NetworkModule.class
}
)
public interface UserComponent {
UserComponent inject(BaseActivity activity);
}
和UserModule
@Module
public class UserModule {
private User user;
public UserModule(User user) {
this.user = user;
}
@Provides
@UserScope
FirebaseUser provideUser() {
return user;
}
}
我应该为每个需要用户的活动制作模块活动吗?