SQLite
 sql >> Base de données >  >> RDS >> SQLite

Comment fermer correctement un curseur dans Android

Vous ne fermez pas le curseur dans getDateMove , getTotalWeightLBS , loadRooms ,...

Partout où le curseur n'est plus nécessaire, fermez-le. Dans ces méthodes, utilisez try-finally, il garantira l'exécution du code dans le bloc finally même lorsqu'une exception levée se produit.

Changez le code dans vos méthodes à partir de ceci :

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

à ceci :

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