使用#recycle()后,应该回收Typed Array

Moj*_*ojo 10 java android class recycle

我的代码显示此警告消息:

类型数组应与#recycle()的使用后再循环obtainedTypedArray

码:

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;
}
Run Code Online (Sandbox Code Playgroud)

Com*_*are 14

你应该保持从TypedArray你回来obtainTypedArray()recycle()在使用它之后给它打电话.

此外,硬编码十六进制值0x7f050000不太可能是正确的答案.


Jai*_*rma 11

recycle();obtainTypedArray()声明的最后使用a .不使用hex值,可能会导致您的代码在将来出现并发症.