gpt4 book ai didi

android - Dagger 和 Android 上下文限定符

转载 作者:行者123 更新时间:2023-11-29 15:53:35 26 4
gpt4 key购买 nike

我最近一直在我的项目中使用 Dagger,同时使用这些示例作为指南:

https://github.com/square/dagger/tree/master/examples

但是有一点我无法理解。他们使用 @ForActivity@ForApplication 限定符来显式区分这些类型的 Context,但他们从不在任何依赖项中使用 @Inject 它们?这是怎么回事?在这个例子中是不是被忽视了?如果是这样,那将是相当具有误导性的。

那么我将如何着手将它们注入(inject)任何依赖项? @Inject Dependency dependency 是否足够并且它会自行解析正确的类型?

最佳答案

要在 @ForActivity 案例中注入(inject)上下文,您必须:

@Inject @ForActivity Context context;

这是一篇解释它的帖子:https://stackoverflow.com/a/27343567/3929577

这与使用@Named 注解的结果相同。

您可以在您的模块中使用它:

@Provides @Singleton @Named("foractivity") Context provideActivityContext() {
return activity;
}

然后使用它:

@Inject @Named("foractivity") Context context;

关于android - Dagger 和 Android 上下文限定符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29174053/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com