Android Drawables内存泄漏

abe*_*ker 7 android memory-leaks drawable

我使用几个大型drawables,我不知道如何管理内存泄漏.我跟踪了我的应用程序的堆大小,它不会停止增长(作为分配的内存).

特别是"字节数组(byte [])"类型,它长大后永不减少.(在Eclipse上的DDMS堆视图中)

我的应用程序由一个使用片段的活动组成.那些片段正在显示几个大图像.我试图将drawables回调设置为null,将drawables设置为null,清除我的易失性缓存(这会阻止我的应用程序执行太多磁盘IO)当我弹回一个片段但堆永远不会减少时.

实际上,每次调用时:Drawable.createFromResourceStream(context.getResources(),value,new FileInputStream(f),f.getName(),opts); 堆长大了.我怎样才能释放记忆?

谢谢 !

Moh*_*lah 6

当Java在内存中找到代码引用的对象时会发生内存泄漏,从而阻止垃圾收集器释放此内存.Android中的常见原因是引用Activity上下文而不是Application上下文.确保您的上下文引用了应用程序(即使用getApplicationContext而不是使用this.请查看此视频以获取有关内存泄漏的说明,并检查此问题.