Android,处理关闭游标

时间:2016-10-06 01:44:53

标签: java android

我犯了一个菜鸟错误,我在没有关闭任何游标的情况下编写了我的整个应用程序。这有效,直到应用程序关闭并重新打开。

然而,现在,我正在经历并关闭我的游标:

public boolean contains (int pk)
{
    Cursor cursor = null;
    try
    {
        cursor = //cursor assigned;

       if (cursor.moveToFirst())
        {
            do
            {
                if (cursor.getInt(/*PK COLUMN*/) == pk)
                    return true;
            }
            while (cursor.moveToNext());
        }
    }
    finally
    {
        if(cursor!= null)
            cursor.close();
    }

    return false;
}

这是一个不同的解决方案,但它声明了一个无意义的临时变量,并在不同的区域关闭光标。

public boolean contains (int pk)
{
    Cursor cursor = //value;

    if (cursor != null && cursor.moveToFirst())
    {
        do
        {
            int val = cursor.getInt(/*PK COLUMN*/);
            if(pk == val)
            {
                cursor.close();
                return true;
            }
        }
        while (cursor.moveToNext());

        cursor.close();
    }

    return false;
}

使用try-finally在return语句后清理有什么问题吗?

1 个答案:

答案 0 :(得分:1)

在你的第一个解决方案中,你在没有关闭光标的情况下返回true。 但是最后关闭它是一种很好的做法。