Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/201.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Dagger和Android上下文限定符_Android_Dependency Injection_Inversion Of Control_Dagger - Fatal编程技术网

Dagger和Android上下文限定符

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

我最近在我的项目中使用了Dagger,同时使用以下示例作为指导:

但有一件事我无法理解。他们使用@ForActivity和@ForApplication限定符来明确区分这些类型的上下文,但他们从不将它们@injection到任何依赖项中?怎么回事?这是例子中的疏忽吗?。如果是这样的话,这是相当误导的


那么,我该如何将它们注入任何依赖关系中呢?@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;