博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
为什么需要在TypedArray后调用recycle
阅读量:6915 次
发布时间:2019-06-27

本文共 885 字,大约阅读时间需要 2 分钟。

当我们没有在使用TypedArray后调用recycle,编译器会提示“This TypedArray should be recycled after use with #recycle()”。

官方的解释是:回收TypedArray,以便后面重用。在调用这个函数后,你就不能再使用这个TypedArray。

在TypedArray后调用recycle主要是为了缓存。当recycle被调用后,这就说明这个对象从现在可以被重用了。TypedArray 内部持有部分数组,它们缓存在Resources类中的静态字段中,这样就不用每次使用前都需要分配内存。你可以看看TypedArray.recycle()中的代码:

1 /** 2  * Give back a previously retrieved StyledAttributes, for later re-use. 3  */ 4 public void recycle() { 5     synchronized (mResources.mTmpValue) { 6         TypedArray cached = mResources.mCachedStyledAttributes; 7         if (cached == null || cached.mData.length < mData.length) { 8             mXml = null; 9             mResources.mCachedStyledAttributes = this;10         }11     }12 }

 

 

参考链接

http://stackoverflow.com/questions/13805502/why-do-you-have-to-recycle-a-typedarray

http://developer.android.com/reference/android/content/res/TypedArray.html#recycle%28%29

转载地址:http://wjacl.baihongyu.com/

你可能感兴趣的文章
360云盘退役后 剩下的几家云存储平台要上演“饥饿游戏”了
查看>>
用Memcache缓存加速Mysql的查询
查看>>
MAC下安装redis
查看>>
VC 文件操作大全,打开,保存,复制,删除,查找等
查看>>
安装WP8 SDK出现“根据当前系统时钟或签名文件中的时间戳验证时要求的证书不在有效期内”的解决办法...
查看>>
关于人脸检测一些笔记
查看>>
360网盘书籍分享
查看>>
Mybatis-select、insert、update、delete标签详解
查看>>
数据挖掘的三大趋势——专访SAS首席技术顾问张磊
查看>>
jQuery中attr()与prop()区别介绍
查看>>
可见面判别算法---后向面判别
查看>>
目标规划---应用举例
查看>>
【转载】关于RabbitMQ的消息持久性
查看>>
axios post小结
查看>>
设计模式之状态模式
查看>>
消息中间件(3)-ActiveMQ消息持久化
查看>>
URL Rewrite初认识
查看>>
springboot(六):如何优雅的使用mybatis
查看>>
Spring 3中PropertySourcesPlaceholderConfigurer 的...
查看>>
Python中os和shutil模块实用方法集锦
查看>>