2 clcurie 11 clcurie_11 于 2013.07.22 14:27 提问

TypedArray 中的 recycle() 方法是做什么用的?

我创建了一个 GalleryView 和 ImageView,当在 gallery 中点击一个 item 时,显示的图像大点。我使用下面的代码实现 ImageAdapter:

public ImageAdapter(Context c)
{
    context = c;
    TypedArray a = obtainStyledAttributes(R.styleable.gallery1);
    itemBackground = a.getResourceId(R.styleable.gallery1_android_galleryItemBackground, 0);    
    a.recycle();    
}

当我移除语句 a.recycle()时,程序没有改变还和以前一样,但是当我读取其它的地方时,会强制返回 typedArray。当没有改变时,程序正常运行。
请问recycle()方法的作用是什么呢?

1个回答

Jave_
Jave_   2013.07.22 14:45
已采纳

根据官方API释义:

public void recycle ():
Give back a previously retrieved array, for later re-use.

给回一个先前的提取的数组,为以后复用

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
解析:TypedArray 为什么需要调用recycle()
在 Android 自定义 View 的时候,需要使用 TypedArray 来获取 XML layout 中的属性值,使用完之后,需要调用 recyle() 方法将 TypedArray 回收。那么问题来了,这个TypedArray是个什么东西?为什么需要回收呢?TypedArray并没有占用IO,线程,它仅仅是一个变量而已,为什么需要 recycle? 为了解开这个谜,首先去找官网的 Docu
Android 性能优化——TypedArray 调用recycle()回收对象
在 Android 自定义 View 的时候,需要使用 TypedArray 来获取 XML layout 中的属性值,使用完之后,需要调用 recyle() 方法将 TypedArray 回收。 那么问题来了,这个TypedArray是个什么东西?为什么需要回收呢?TypedArray并没有占用IO,线程,它仅仅是一个变量而已,为什么需要 recycle? 为了解开这个谜,首先去找官网的
Bitmap为什么要调用recycle()方法来显示释放内存
Bitmap没有及时释放的话经常会出现OOM错误,这是由于Bitmap占用的是底层C的内存,JVM的垃圾回收机制对他没有用。用完后必须显示的调用 recycle()方法告诉JVM该Bitmap没有用了,可以释放了,然后JVM才能在稍后释放Bitmap占用的内存。
TypedArray详解
我们如果想获取android的资源文件,可以使用context.getresource.getXXX得到,也可以通过TypedArray得到
android-TypedArray
TypedArray public class TypedArray  extends Object  java.lang.Object    ↳ android.content.res.TypedArray Container for an array of values that were retrieved with o
Android 自定义控件之第二讲:TypedArray 详解
最近一直在研究 Android 自定义控件,因此 LZ 将根据自己的学习经历将自定义控件中用到的知识一 一解析,如果小伙伴还没有看过 LZ 的第一讲,那么请小伙伴自行移步 Android 自定义控件之第一讲:attr format 取值类型,好了,就先扯到这里,下面开始今天内容讲解:Google 开发者平台是这么解释这个类的:大体意思是:TypedArray 是一个数组容器,在这个容器中装由 obt
TypedArray实例对象的getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
这三个函数返回的都是绝对尺寸(px???),而不是相对尺寸(dp\sp等)。如果getDimension()返回结果是20.5f,那么getDimensionPixelSize()返回结果就是21,getDimensionPixelOffset()返回结果就是20。 如果想详细的了解http://www.cnblogs.com/android-zcq/p/5138368.html
Android 自定义属性时TypedArray的使用
对于自定义属性,遵循以下几步,就可以实现: 自定义一个CustomView(extends View )类 编写res/values/attrs.xml,在其中编写styleable和item等标签元素 在布局文件中CustomView使用自定义的属性(注意namespace) 在CustomView的构造方法中通过TypedArray获取 <LinearLayout xmlns:android="
Android自定义View时使用TypedArray配置样式属性
在自定义view时为了提高复用性和扩展性,可以为自定义的view添加样式属性的配置,比如自定义图片资源、文字大小、控件属性等,就这需要用到TypedArray类,下面以一个自定义的可点击扩展和收缩的TextView为例记录下这个类的简单使用。
session.setAttribute()方法是做什么用的?
session.setAttribute("sessionName",Object); 用来设置session值的,sessionName是名称,object是你要保存的对象。 session.getAttribute("sessionName"); 用来得到对应名称的session值,即得到object对象,注意需要进行类型转换! session.setAttribute("xy