gpt4 book ai didi

Android getApplicationContext内存管理

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

在这篇文章中

When to call activity context OR application context?

马克墨菲说

“如果来自 getApplicationContext() 的 Context 持有由您对其调用创建的东西而您没有清理,它可能会造成内存泄漏。对于 Activity,如果它持有某些东西,一旦 Activity 被垃圾收集,其他所有内容也会被清除。Application 对象将在您的进程的生命周期内保留。”

哪些调用会创建应用程序上下文保留的内容?

我有一个图书馆,它需要各种事物的上下文。它可以在后台运行并跨越 Activity ,但使用和更新 Activity 上下文会出现问题。

我认为这可能是使用应用程序上下文更可取的场合之一?

最佳答案

如果库中对象的生命周期可以跨越多个 Activity ,那么绝对使用应用程序上下文。使用 Activity 上下文可以防止垃圾收集器丢弃上下文。由于 Activity 上下文可以保留相当多的数据,因此您的内存使用量可能会急剧增加。

此外,如果 Activity 关闭,它会放弃其窗口 token 。尝试使用该上下文生成对话框将给出 BadTokenException。因此,如果对象不直接绑定(bind)到 Activity 生命周期,则没有必要为对象提供 Activity 上下文。

编辑:Here is a credible source

关于Android getApplicationContext内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11224414/

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