您的位置:首页 > 移动开发 > Android开发

关于bitmap recycle trying to use a recycled bitmap android.graphics.Bitmap

2018-01-21 17:41 459 查看
在开发中,一直使用4.0以上手机作为測试机所以一直没有出现这个问题,今天换了2.3版本号的手机。出现了这个错误:

trying to use a recycled bitmap android.graphics.Bitmap

后检查代码,我的图片回收代码是介个样子的:

public static void recycle(View view) {
if (null == view) {
return;
}

BitmapDrawable bd = (BitmapDrawable) view.getBackground();
if (null == bd) {
return;
}

Bitmap bm = bd.getBitmap();
if (null != bm && !bm.isRecycled()) {
bm.recycle();
}
}

即在我回收了图片后,这个View对象还在引用这个图片。导致出现这个问题,后改动为:

public static void recycle(View view) {
if (null == view) {
return;
}

BitmapDrawable bd = (BitmapDrawable) view.getBackground();
if (null == bd) {
return;
}

view.setBackgroundDrawable(null);
Bitmap bm = bd.getBitmap();
if (null != bm && !bm.isRecycled()) {
bm.recycle();
}
}

设置背景图片为空,取消对图片的引用再去回收。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐