Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?
来源:互联网 发布:天刀哪个职业厉害知乎 编辑:程序博客网 时间:2024/06/13 23:25
http://blog.chinaunix.net/uid-20771867-id-3351053.html
我们知道手机的内存有限,而图片所占的内存往往又很大。所以在处理图片的时候可以在服务端或者客户端提前将图片处理一下,减少其体积。另外使用Bitmap的时候可以使用SoftReference来及时释放资源。但是看到好多程序还是主动地调用Bitmap对象的recycle方法来释放资源。可能我们就有疑问了:不是java会自动回收内存吗,那干吗还要手动地去回收?
要解决这个问题,我们得去看看recycle的源码:
点击(此处)折叠或打开
- public void recycle() {
- if (!mRecycled) {
- mBuffer = null;
- nativeRecycle(mNativeBitmap);
- mNinePatchChunk = null;
- mRecycled = true;
- }
- }
当然如果用的图片很少,占用的内存也很少的时候就没有必要手动调用recycle方法来回收内存了,GC会在合适的时候回收这些内存的。只有图片很多占用内存很多的时候才需要我们主动调用recycle方法,否则很有可能出现OOM异常的。
0 0
- Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?
- Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?
- Android系统中Bitmap是否有调用recycle方法的必要性?
- Android系统中Bitmap是否有调用recycle方法的必要性
- Android系统中Bitmap是否有调用recycle方法的必要性? .
- Android系统中Bitmap是否有调用recycle方法的必要性
- Android系统中Bitmap是否有调用recycle方法的必要性?
- Android系统中Bitmap是否有调用recycle方法的必要性
- Android系统中Bitmap是否有调用recycle方法的必要性
- Android系统中Bitmap是否有调用recycle方法的必要性
- 是否需要主动调用Bitmap的recycle方法?
- Bitmap为什么要调用recycle()方法来显示释放内存
- Android中有没有必要调用Bitmap的recycle()
- android Bitmap.recycle()的相关问题
- Android Bitmap使用recycle()后 报:trying to use recycled bitmap 的问题
- Bitmap recycle方法与制作Bitmap的内存缓存
- Bitmap recycle方法与制作Bitmap的内存缓存
- Bitmap recycle方法与制作Bitmap的内存缓存
- hadoop steaming中ERROR:Job not successful. of failed Reduce Tasks exceeded allowed limit.的解决办法
- 在一个字符串中查找第一个非重复的字符
- WinForm TreeView学习小记(1)
- 解决并发情况下数据脏读
- Reverse Words in a String
- Android 在使用Bitmap的时候为啥要手动调用recycle方法呢?
- error MSB3323:无法在证书存储区中找到清单签名证书
- C#开发可以可视化操作的windows服务
- Hadoop - YARN 概述
- hadoop集群搭建datenode为0问题的解决
- Java中的BoneCP数据库连接池用法
- 日积月累:配置SDK路径错误(An error occurred while automatically activating bundle com.android.ide.eclipse.adt)
- org.apache.jasper.JasperException
- 关于vsftp中 出现的530 Login incorrect解决方法