gpt4 book ai didi

android - 我可以在 Dagger2 中重新创建托管依赖项吗?

转载 作者:行者123 更新时间:2023-11-29 20:03:16 25 4
gpt4 key购买 nike

我正在考虑在应用程序范围内提供单例 GoogleApiClient 的可能性。多个 Activity 和 Fragment 需要客户端,并且有很多样板代码。

如果注入(inject)的依赖项进入我需要丢弃它并创建一个新依赖项的状态,我该怎么办?

我遇到过 GoogleApiClient 抛出 IllegalStateException 的真实案例。这种情况极为罕见,但此时 reconnect() 无济于事。恢复的唯一方法是与 API 客户端建立新连接(使用 GoogleApiClient.Builder)。

最佳答案

您可以使用提供者注入(inject)来指示每次需要依赖时都必须运行一些代码。 user guide 中对此进行了概述。 (向下滚动到标题“Provider injections”)。然后你实现并注入(inject)一个 Provider知道如何检索您的 GoogleApiClient 的已知工作实例。

这里的诀窍是,我认为您的 Provider 的具体实现将需要某种方式来指示它持有的对象不再有效并且应该重新创建。因此,当您检测到有问题时,您最终不得不将其转换为具体类型并调用另一个方法来告诉它发生了什么。或者找到一些其他方法来指导提供者逻辑从坏对象中恢复。

关于android - 我可以在 Dagger2 中重新创建托管依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35974785/

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