SQLite
 sql >> Base de Dados >  >> RDS >> SQLite

Como fechar corretamente um cursor no Android


Você não está fechando o cursor em getDateMove , getTotalWeightLBS , loadRooms ,...

Em todos os lugares onde o cursor não é mais necessário, feche-o. Nesses métodos, use try-finally, ele garantirá a execução do código no bloco finally mesmo quando ocorrer uma exceção lançada.

Altere o código em seus métodos a partir disso:
try{
  // get data from cursor
} catch (Exception e) {
    c.close();
}

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