类型化数组在与#recycle() 一起使用后应回收

2022-09-03 18:01:21

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

类型化数组在使用后应与 #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;
}

答案 1

您应该抓住您回来并在使用它后调用它。TypedArrayobtainTypedArray()recycle()

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


答案 2

在语句末尾使用 。不要使用值,可能会导致将来代码复杂化。recycle();obtainTypedArray()hex