¿Cuál de los siguientes dos debería utilizar para asegurarme de que todos los cursores estén cerrados?Idioma para cerrar un cursor
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:
algunas preguntas:
1. ¿Necesitamos llamar a close() en un cursor que tiene el recuento de 0?
2. Porque en ese caso para la primera expresión idiomática, close() nunca se llamará. Se supone que para un cursor que no tenga elementos, el cursor nunca se abrirá. ¿Es esto una suposición válida?
Por favor, asesorar.
gracias por su respuesta! –
no creo que use getCount es un buen método. si usas moveToFirst, puedes obtener un mejor rendimiento – wangzhengyi
@wangzhengyi - Ese es un punto válido moveToFirst es más eficiente Y responde la pregunta de "¿hay algo en el conjunto de resultados? ... pero OP usó getCount() en su ejemplo, así que continuó aquí. –