ListView内存泄漏?

时间:2010-09-14 13:30:53

标签: java android memory listview caching

嘿,我的listview似乎遇到了某种内存泄漏问题。列表视图活动位于选项卡中,每行下载一个图像并将其显示在ImageView中(将其平铺为backgroiund)。我正在使用类似于droidfu http://github.com/kaeppler/droid-fu/blob/master/src/main/java/com/github/droidfu/imageloader/ImageCache.java

的缓存

一切似乎工作正常,因为当它超过20个项目时我完全清除内存缓存,并且当它超过0.5mb时完全清除磁盘缓存只是为了安全。当我在列表中有大量项目(比如100)时会出现问题,并且我会尽可能快地在此列表中来回滚动。最终我在Logcat中收到这些消息:

  

需要堆按摩(59892字节外部分配太大)

     

完整GC(不收集SoftReferences)

     

将目标GC堆从16.277MB钳制到16.000MB

     

尝试修剪堆源

     

完整GC(收集SoftReferences)

还有很多导致力量接近的人。我不太确定问题是什么或如何修复它:S

谢谢!

以下是完整日志:http://pastebin.com/MghMdbxS

原来问题是创建的AsyncTask / Thread对象太多了。我正在使用http://code.google.com/p/android-imagedownloader/中的代码而不确定如何解决此问题......

1 个答案:

答案 0 :(得分:0)

一个好的起点是:

http://kohlerm.blogspot.com/2009/04/analyzing-memory-usage-off-your-android.html

获得转储有点复杂,但会给你一个很好的时间点静态分析。您还需要Eclipse内存分析工具(MAT):

http://www.eclipse.org/mat/

祝你好运!