sql >> Base de Datos >  >> RDS >> SQLite

¿Cuándo debo cerrar un cursor y una base de datos?

¿Debo cerrar el cursor después de cada uso o puedo mantenerlo abierto hasta que se destruya la vista?

Depende Si el resultado del cursor no va a cambiar mientras tanto (por ejemplo, la conexión remota modifica la base de datos), entonces está bien. No olvides usar CursorLoader para que Android administre su cursor automáticamente (por ejemplo, cierre el cursor si su aplicación falla).

Y lo mismo para la base de datos, ¿se puede abrir una vez que se crea la actividad que contiene esta vista y cerrar cuando se destruye la actividad?

Sí, puede abrir en onResume() y cerrar en onPause() devoluciones de llamada, o cuando sabe que su base de datos ya no será consultada.

Recibo continuamente un error 'close() nunca se llamó explícitamente a la base de datos...' cuando hago lo descrito anteriormente.

Esto es normal solo si su aplicación falla. No debería suceder si lo estás haciendo como dije anteriormente.