以下代码创建&股喷射的依赖(ViewsApiEnd
)具有不同活性的相同对象,而不是创建每个活动不同。dagger2 activityscope提供注入依赖性相同的对象具有不同活性
@ActivityScope
@Component(dependencies = HttpComponent.class, modules = ViewsApiModule.class)
public interface ViewsApiComponent {
void inject(MainActivity activity);
void inject(SecondActivity activity2);
}
模块:
@Module
public class ViewsApiModule {
@Provides
@ActivityScope
public ViewsApiEnd providesGitHubInterface(Retrofit retrofit) {
return retrofit.create(ViewsApiEnd.class);
}
}
范围:
@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ActivityScope{
}
全部来源:Github(如果任何人都可以用叉子叉&正确范围issue这将是有帮助的也checke void logInstances()
验证对象。创作)
如果我想让dagger2为不同的活动(MainActivity
,SecondActivity
)创建不同的注入的对象(ViewsApiEnd
),我该如何声明ViewsApiComponent
?
感谢您的帮助,但我觉得'@Overrides 公共无效的onDestroy(){ super.onDestroy(); mViewsApiComponent = NULL; }'是后备选项。 – AskQ
你是什么意思?你为什么这样想? – Fred
它解决了问题,所以我upvoted ..但让我得到这个问题我张贴在dagger2 GitHub上的响应。 – AskQ