ListView 显示ImageView的问题,怎么释放bitmap,在哪里释放?
我之前的做法是用SoftReference,用的好好的,然后昨天不知道怎么搞得,出现了下OOM然后老大看到了,我郁闷,不是说系统内存不够的时候会自己释放bitmap吗?怎么昨天还出现了OOM,
我的问题是,用SoftReference需要释放bitmap吗?如果需要在什么地方释放,Adpater里面还是什么地方?
谢谢各位帮我解答!

解决方案 »

  1.   

    我们开发用的是LRU缓存。
    你可以网上去搜一搜相关的文章和算法。
    android本身也提供了LRU Cache。
    我们的图像存取放在缓存的LRU内。维护两个LRU,一个强引用,一个软引用。
    强引用淘汰下来的bitmap放到软引用内。
    LRU本身是基于LinkedHashMap,所以性能上还不错。
    这样解决了图片的显示速度问题,也解决了OOM问题。
      

  2.   

    可以用DDMS把你的OOM记录文件dump下来,然后用MAT进行分析。