Dagger和Android上下文限定符
我最近在我的项目中使用了Dagger,同时使用以下示例作为指导: 但有一件事我无法理解。他们使用@ForActivity和@ForApplication限定符来明确区分这些类型的上下文,但他们从不将它们@injection到任何依赖项中?怎么回事?这是例子中的疏忽吗?。如果是这样的话,这是相当误导的Dagger和Android上下文限定符,android,dependency-injection,inversion-of-control,dagger,Android,Dependency Injection,Inversion Of Control,Dagger,我最近在我的项目中使用了Dagger,同时使用以下示例作为指导: 但有一件事我无法理解。他们使用@ForActivity和@ForApplication限定符来明确区分这些类型的上下文,但他们从不将它们@injection到任何依赖项中?怎么回事?这是例子中的疏忽吗?。如果是这样的话,这是相当误导的 那么,我该如何将它们注入任何依赖关系中呢?@Inject Dependency是否足够,并且它将自己解析正确的类型?要在@ForActivity案例中插入上下文,您必须: @Inject @ForA
那么,我该如何将它们注入任何依赖关系中呢?@Inject Dependency是否足够,并且它将自己解析正确的类型?要在@ForActivity案例中插入上下文,您必须:
@Inject @ForActivity Context context;
下面是一篇解释这一点的帖子:
这与@Named注释的结果相同
您可以在模块中使用此选项:
@Provides @Singleton @Named("foractivity") Context provideActivityContext() {
return activity;
}
然后使用:
@Inject @Named("foractivity") Context context;
要在@ForActivity案例中注入上下文,您必须:
@Inject @ForActivity Context context;
下面是一篇解释这一点的帖子:
这与@Named注释的结果相同
您可以在模块中使用此选项:
@Provides @Singleton @Named("foractivity") Context provideActivityContext() {
return activity;
}
然后使用:
@Inject @Named("foractivity") Context context;