为什么需要在TypedArray后调用recycle
当我们没有在使用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
作者:kissazi2
出处:http://www.cnblogs.com/kissazi2/
本文版权归作者所有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。
转载:http://www.cnblogs.com/kissazi2/p/4049982.html
为什么需要在TypedArray后调用recycle相关推荐
- Android之TypedArray 为什么需要调用recycle()
转自:http://blog.csdn.net/Monicabg/article/details/45014327 在 Android 自定义 View 的时候,需要使用 TypedArray 来获取 ...
- DOM中setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式。
setTimeout() 方法用于在指定的毫秒数后调用函数或计算表达式. <html> <head> <script type="text/javascript ...
- 利用Fiddler模拟通过Dynamics 365的OAuth 2 Client Credentials认证后调用Web API
微软动态CRM专家罗勇 ,回复337或者20190521可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 配置Dynamics 365 & PowerApps 支 ...
- jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 解决方法 前言 jqweui组件,confirm嵌套prompt后调用一个方法中的alert无法关闭掉 提示:以下是本 ...
- python导入包后调用提示unresolved reference
python导入包后调用提示unresolved reference 问题展示 解决过程 解决办法概述:从project文件夹移动至虚拟环境文件夹(venv library root) 问题展示 im ...
- python语言中函数在调用前必须先定义吗_Python函数必须先定义,后调用说明(函数调用函数例外)...
java开发者在定义类中的方法时,不会关心方法的定义相对于调用语句的位置. 但是python中需要注意: 函数必须先定义.后调用(函数调用函数例外). 如下为示例说明: 1.python函数的应用一般 ...
- android .recycle(),Android系统中Bitmap是否有调用recycle方法的必要性
Bitmap有一个recycle方法,意思很简单,回收Bitmap的空间.但是我们知道java有自己的垃圾回收机制,所以为什么BitaMap还需要这样一个专门的回收方法呢? 无需调用bitmap的理由 ...
- Android App ~ Bitmap 调用 recycle() 回收内存
Bitmap调用recycle? When? Bitmap有一个recycle方法,意思很简单,回收Bitmap的空间. Q 1: Bitmap是否有调用recycle方法的必要性? A: 嵌入式系统 ...
- c++中delete对象后 调用成员函数_C++类的特殊成员函数及default/delete特性
本文包含以下内容 1. C++的四类特殊成员函数介绍,重点介绍拷贝构造函数和拷贝复制运算符 2. C++11中的default/delete特性 本文内容侧重个人理解,深入理解其原理推荐https:/ ...
最新文章
- python3.6.2怎样安装,python 3.6.2 安装配置方法图文教程
- 【CyberSecurityLearning 18】ACL及实验演示
- layui 数字步进器_图解全新奔驰S级:从“传统豪华”向“数字豪华”转型
- AttributeError: module 'sys' has no attribute 'maxint'
- 菜刀php教程,Weevely(php菜刀)工具使用详解
- Kubernetes持久化存储2——探究实验
- push bullet matlab,PushBullet(推送)下载|PushBullet(推送)安卓版v16.5.4 官方最新版_软件侠下载站...
- gsonformat安装
- DeepMatch交友机器人:原来姹紫嫣红开遍,缘来就是你
- 代码走查(codereview)如何执行才能提升代码质量
- 闪讯利用openwrt路由器拨号教程(五)
- linux 拔网线重启才可以上网_Linux断开网线后,再插上网线,网络仍然无法PING通,只有重启网络服务后才能PING通...
- 微信html5展示页,H5科普|微信H5页面的展示形式
- 企业使用云平台,存在的三个问题
- 小程序实现图片预加载(图片延迟加载)
- 【Windows下设置全局以管理员身份运行cmd】
- 此应用程序无法启动,因为没有Qt平台插件可以初始化,重新安装应用程序可能会解决此问题
- oracle的rowid和rownum,【oracle rowid与rownum的使用与区别 】
- 数据分析excel计算环比与同比以及常用函数:
- 【IoT】如何使用软件加密(文件夹加密工具.exe),并破解工具
热门文章
- android 设置textview中划线效果
- Windows Phone 开发工具包7.1公测版新特性
- Strategy模式
- evoc服务器长鸣报警显示正常,UPS电源故障灯亮,蜂鸣器长鸣报警怎么办
- 同时打包多个场景_人机CP模式闯入“打包界”,智能设备让每一厘米纸箱物尽其用...
- 微博鸿蒙测试版,不久前华为宣布,将会在6月2日举... - @姬永锋 的微博精选 - 微博国际站...
- conda 装tensorboardx_【工欲善其事】TensorboardX的使用
- 【Java】方法的重载 (求最大值方法的重载+求和的重载)
- HDU2199(二分算法)
- 关于学习Python的一点学习总结(4->成员资格->list->列表操作)