我在我的应用程序中使用Dagger 2 DI框架。目前,我正在为我的身份验证活动创建目录结构。
我有一个AppComponent和AppModule,它们的作用域是ApplicationScope注释。
对于我有@ActivityScope的个人活动。我有一个名为AuthenticationActivity的活动,它的唯一工作是提供两个片段 - LoginFragment和SignUpFragment,这样用户可以刷一个viewpager来在两者之间进行切换。现在,我的问题是我应该如何安排我的匕首堆叠?我是否需要为LoginFragment创建一个subComponent,例如
@Subcomponent(modules{})
public interface AuthenticationComponent{
LoginComponent plus(LoginModule module);
}
我的LoginComponent看起来像这样:
@Subcomponent(modules{LoginModule.class})
public interface LoginComponent{
void inject(LoginFragment fragment);
}
我的应用组件看起来很相似:
@Component(modules={AppModule.class})
public interface AppComponent{
AuthenticationComponent plus(AuthenticationModule module);
}
我只是想知道是否有更优雅的方式(例如避免创建AuthenticationComponent)。
答案 0 :(得分:1)
我认为两个范围(ApplicationScope
和ActivityScope
)就足够了。只需通过特定的活动组件注入您的片段。