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;
}
return-statementの後にtry-finallyを使用してクリーンアップすると何か問題はありますか?
エラーは何ですか? –
いいえ、最初の例は問題ありません。私はそれを行うために推奨される方法を信じています。 – ShadowGod
@ShadowGod、fantastic。 –