Bitmap的回收

Bitmap的回收

 

在Android里,垃圾的回收是靠系统来调度的。之前在网上查Bitmap的回收,大家都说Bitmap不会被系统的自动的垃圾回收。于是,做了个简单的测试,发现Bitmap的回收和普通的垃圾回收应该是一致的。

代码如下:

    public void getBmp(View view)

    {

       String str = "/sdcard/pic.jpg";

       Bitmap bmp = BitmapFactory.decodeFile(str);

    }

发现,内存占用并不会随着改函数的调用而上升。如下所示:

当代码如下时:(其中, list为全局变量)

public void getBmp(View view)

{

    String str = "/sdcard/pic.jpg";

    Bitmap bmp = BitmapFactory.decodeFile(str);

    list.add(bmp);

}

public void recycleBmp(View view)

{

    list.clear();

    System.gc();

}

先多次调用getBmp,在调用recycleBmp时,其内存占用如下:

由此可以证明,Bitmap在垃圾回收机制中被不占用特殊的地位。当某一Bitmap没有被引用时,垃圾回收会将其回收。

 

另外,在调用ImageView.setImageDrawable(null)后立即调用System.gc(),并不会立即将ImageView之前所有的Drawable回收。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值