gpt4 book ai didi

android - Dagger 2 基于上下文的范围

转载 作者:行者123 更新时间:2023-11-30 00:17:47 25 4
gpt4 key购买 nike

我正在开发一个相对复杂的框架,其中包含 ActivitiesServicesContentProviders

我需要访问实例 Foo 但该实例在定义的范围内必须相同。 -> 例如,我有类 ABCD

A 会生成 BCABC 将使用相同的 Foo

实例

D 会生成另一个 BC,即 DB ,C 还将使用 Foo 的另一个实例。

如何构造我的组件和模块,使每个上下文只有一个 Foo 实例,但多个上下文不会共享 Foo 实例?

现在我只创建了一个组件,它有几个模块,每个类都会调用

DaggerComponent.getComponent().inject(this);

我无法全神贯注地解决这个问题。

提前致谢!

最佳答案

您可以依赖 Dagger-2 中的作用域。要创建一个范围,您只需创建一个这样的界面:

@Scope
@Retention(RetentionPolicy.RUNTIME)
public @interface ContextScope { // You can call it whatever you want
}

然后在您的组件中添加 @ContextScope 注释。

注意:完成后必须清除实例, Dagger 不会为您清除它。 Service或Activity结束后,释放实例。

看看这个project .它实现了一个 UserScope 示例。

关于android - Dagger 2 基于上下文的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46922102/

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