我的代码显示此警告消息:
对于 gotTypedArray
,类型数组应在使用#recycle()后回收
代码:
public View getView(int i, View view, ViewGroup viewgroup)
{
ImageView imageview;
if (view == null)
{
imageview = new ImageView(b);
imageview.setLayoutParams(new android.widget.AbsListView.LayoutParams(110, 110));
imageview.setPadding(1, 1, 1, 1);
imageview.setAdjustViewBounds(false);
imageview.setScaleType(android.widget.ImageView.ScaleType.CENTER_CROP);
} else
{
imageview = (ImageView)view;
}
imageview.setImageResource(a.getResources().obtainTypedArray(0x7f050000).getResourceId(i, -1)); //*warning*Typed Array should be recycled after use with #recycle()
return imageview;
}
答案 0 :(得分:14)
您应该抓住TypedArray
从[{1}}返回obtainTypedArray()
并在使用后致电recycle()
。
此外,对像0x7f050000
这样的十六进制值进行硬编码不太可能是正确答案。
答案 1 :(得分:10)
在recycle();
声明的末尾使用obtainTypedArray()
。
不要使用hex
值,将来可能会导致代码出现问题。