我使用几个大型绘图,但不知道如何管理内存泄漏。
我跟踪了应用程序的堆大小,它不会停止增长(与分配的内存一样)。
尤其是“字节数组(byte[])”类型,它只会增长且永不减少。 (在 Eclipse 上的 DDMS 堆视图中)
我的应用程序由一个使用片段的活动组成。
这些片段显示了几张大图像。
当我弹出片段时,我尝试将drawables回调设置为null,将drawables设置为null,清除易失性缓存(这可以防止我的应用程序执行太多磁盘IO),但堆永远不会减少。
事实上,每次我打电话:
Drawable.createFromResourceStream(context.getResources(), value, new FileInputStream(f), f.getName(), opts);
堆长大了。我怎样才能释放内存?
Thanks !
当 Java 在内存中找到代码引用的对象时,就会发生内存泄漏,这会阻止垃圾收集器释放该内存。 Android 中的一个常见原因是引用 Activity 上下文而不是应用程序上下文。确保您的上下文引用应用程序(即使用getApplicationContext
而不是使用this
。检查这个video有关内存泄漏的解释并检查此question.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)