首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >声明viewBinding时内存泄漏

声明viewBinding时内存泄漏
EN

Stack Overflow用户
提问于 2022-08-20 05:15:17
回答 1查看 37关注 0票数 0

我声明viewBinding在MainActivity类之外,如下所示:

private lateinit var binding: ActivityMainBinding

但我收到一个警告:

Do not place Android context classes in static fields (static reference to `ActivityMainBinding` which has field `tvTasksTitle` pointing to `TextView`); this is a memory leak

在以前的项目中,我总是这样声明viewBinding,没有收到任何警告。当然,我可以继续这个项目,但我想知道原因。我在网上搜索,但找不到合适的答案或解决办法。

如能提供任何帮助,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-20 05:31:18

把它放在MainActivity里面,而不是外面。如果它在外部,它将持续超过活动,这将造成内存泄漏(不是可能,它将100% )。而且,这将导致一个活动的所有实例共享相同的绑定。这是一个bug- -它可能(实际上是预期的)一个活动的多个副本存在,这可能导致该活动的旧实例引用新实例的绑定,这可能导致不正确的行为和竞争条件。

解决方案只是让它成为MainActivity类中的一个变量,因此它是实例的一个属性。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73424266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档