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

Cómo cerrar correctamente un cursor en android

No estás cerrando el cursor en getDateMove , getTotalWeightLBS , loadRooms ,...

En todas partes donde ya no se necesita el cursor, ciérrelo. En esos métodos, use try-finally, garantizará la ejecución del código en el bloque finalmente, incluso cuando se produzca una excepción.

Cambie el código en sus métodos de esto:

try{
  // get data from cursor
} catch (Exception e) {
    c.close();
}

a esto:

try {
   // get data from cursor
} catch (Exception e) {
   // exception handling
} finally {
   if(c != null){
       c.close();
   }
}