读书人

为何 实现 回收 就会停止运行?

发布时间: 2012-08-29 08:40:14 作者: rapoo

为什么 实现 回收 就会停止运行???

Java code
try{            FileInputStream fis = new FileInputStream(file);            BufferedInputStream bis = new BufferedInputStream(fis);            Bitmap  bmap = BitmapFactory.decodeStream(bis, null, opt) ;            //Bitmap thbm=ThumbnailUtils.extractThumbnail(bmap, 50,50);//压缩图片            viewholder.image.setImageBitmap(bmap);            bis.close();            if(!bmap.isRecycled()){                bmap.recycle();                System.gc();            }        }catch(Exception e){            e.printStackTrace();        }


错误信息:
Java code
07-26 06:12:03.153: E/AndroidRuntime(1743): java.lang.RuntimeException: Canvas: trying to use a recycled bitmap android.graphics.Bitmap@41368ae8


[解决办法]
bmap.recycle();过早执行了。
[解决办法]
你那图在后面又加载使用了,你内存回收了,所以。。。
[解决办法]
Bitmap会在native层分配内存,这个内存给你回收了,就出问题了。

读书人网 >Android

热点推荐