Какое из следующих двух я должен использовать, чтобы убедиться, что все курсоры закрыты?Идиома, чтобы закрыть курсор
Cursor c = getCursor();
if(c!=null && c.getCount()>0){
try{
// read values from cursor
}catch(..){}
finally{
c.close();
}
}//end if
OR
Cursor c = getCursor();
try{
if(c!=null && c.getCount()>0){
// read values from cursor
}//end if
}catch(..){
}finally{
c.close();
}
EDIT:
Несколько вопросов:
1. Нужно ли нам называть близко() на курсор, который имеет счетчик 0?
2. Поскольку в этом случае для первой идиомы, close() никогда не будет вызван. Он предполагает, что для курсора, не имеющего элементов, курсор никогда не будет открыт. Действительно ли это предположение?
Просьба сообщить.
спасибо за ваш ответ! –
Я не думаю, что использование getCount - хороший метод. если пользователь moveToFirst, вы можете получить более высокую производительность. – wangzhengyi
@wangzhengyi - Это действительный пункт moveToFirst более результативен и отвечает на вопрос «есть ли что-либо в наборе результатов» ... но OP использовал getCount() в своем примере, чтобы я продолжил его здесь. –