gpt4 book ai didi

Android Drawable内存泄漏

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:52:34 25 4
gpt4 key购买 nike

我使用多个大型可绘制对象,但我不知道如何管理内存泄漏。我跟踪了我的应用程序的堆大小,它不会停止增长(作为分配的内存)。

尤其是“字节数组(byte[])”类型,它是增长永不减少的。 (在 Eclipse 上的 DDMS 堆 View 中)

我的应用程序由一个使用 fragment 的 Activity 组成。这些 fragment 正在显示几个大图像。我尝试将 drawables 回调设置为 null,将 drawables 设置为 null,当我弹出一个 fragment 但堆从未减少时清除我的 volatile 缓存(这防止我的应用程序执行太多磁盘 IO)。

事实上,每次我打电话:Drawable.createFromResourceStream(context.getResources(), value, new FileInputStream(f), f.getName(), opts);堆长大了。我怎样才能释放内存?

谢谢!

最佳答案

当 Java 在内存中发现您的代码引用的对象阻止垃圾收集器释放此内存时,就会发生内存泄漏。 Android 中的一个常见原因是引用 Activity 上下文而不是 Application 上下文。确保您的上下文引用了应用程序(即使用 getApplicationContext 而不是使用 this。检查此 video 以了解内存泄漏的解释并检查此 question

关于Android Drawable内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12438235/

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