0
我犯了一個菜鳥錯誤,我寫了我的整個應用程序而沒有關閉任何遊標。這是有效的,直到應用程序關閉並重新打開。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-最後一個return語句後清理?
什麼是錯誤? –
不是。第一個例子很好,我相信推薦的方法。 – ShadowGod
@ShadowGod,太棒了。 –