为什么需要在TypedArray后调用recycle
1个回答
展开全部
在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 }
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 }
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询