2
我有一个组件重新组合当前活动及其碎片,因为我希望范围仅适用于此活动,而不适用于整个应用程序。 因此,在此活动的onCreate方法中,我创建了我的Component,并将当前的Activity注入到它中(请参阅下面的代码)。使用Dagger 2,将活动注入其本地组件是否正确?
我想知道我所做的是正确的还是有更好的方法来做到这一点?
仅供参考,我遵循MVP设计模式。
组件
@Singleton
@Component(modules = {
FragmentX1Module.class,
FragmentX2Module.class,
ActivityXModule.class,
RepositoryModule.class,
})
public interface ActivityXComponent {
void inject(FragmentX1Module fragment);
void inject(FragmentX2Module fragment);
void inject(ActivityXModule activity);
}
活动
private ActivityXComponent mXComponent;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_x);
mXComponent = DaggerActivityXComponent.builder()
.activityXModule(new ActivityXModule(this)) // I need the Activity Context for later uses
.build();
mXComponent.inject(this);
// ...
}
但是我还需要将ActivityX注入ActivityXComponent吗? – Eselfar
@Eselfar您需要在构造函数中将其提供给'ActivityXModule'。 – gjsalot