SQLite
 sql >> Database >  >> RDS >> SQLite

Come chiudere correttamente un cursore in Android

Non stai chiudendo il cursore in getDateMove , getTotalWeightLBS , loadRooms ,...

Ovunque il cursore non è più necessario chiuderlo. In questi metodi usa try-finally, garantirà l'esecuzione del codice in blocco definitivo anche quando si verifica un'eccezione generata.

Modifica il codice nei tuoi metodi da questo:

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

a questo:

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