SQLite
 sql >> Datenbank >  >> RDS >> SQLite

So schließen Sie einen Cursor in Android richtig

Sie schließen den Cursor nicht in getDateMove , getTotalWeightLBS , loadRooms ,...

Überall dort, wo der Cursor nicht mehr benötigt wird, schließen Sie ihn. Verwenden Sie in diesen Methoden try-finally, um sicherzustellen, dass der Code im finally-Block ausgeführt wird, selbst wenn eine ausgelöste Ausnahme auftritt.

Ändern Sie den Code in Ihren Methoden von hier:

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

dazu:

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