gpt4 book ai didi

android - Context 应该用 Dagger 注入(inject)吗?

转载 作者:太空宇宙 更新时间:2023-11-03 12:27:48 24 4
gpt4 key购买 nike

我知道可以使用 Dagger 注入(inject) Context。我们可以看例子herehere .

在另一端,有很多关于不将上下文放在静态变量上以避免泄漏的帖子。Android Studio (lint) 对此也很热情:

Do not place Android context classes in static fields; this is a memory leak (and also breaks Instant Run)

我知道通过使用 Dagger 注入(inject)上下文,我们将其放置在单例类中,因此上下文在某种程度上是静态的。这不违反 lint 警告吗?

注入(inject)上下文似乎可以创建更清晰的代码,因为您不必将它传递给多个类(不需要它),以便它们可以进一步将它传递给出于某种原因需要它的其他类(获取例如资源)。

我只是担心这可能会导致一些不希望的泄漏或以某种方式破坏 lint。

最佳答案

您的存储/引用 Activity 上下文( Activity 是上下文)的时间永远不应超过 Activity 的生命周期,否则,正如您所说的那样,您的应用程序将泄漏内存。另一方面,应用程序上下文具有应用程序的生命周期,因此可以安全地在单例中存储/引用。通过 context.getApplicationContext() 访问应用上下文。

关于android - Context 应该用 Dagger 注入(inject)吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44357735/

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