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

Close wurde nie explizit für die Datenbank aufgerufen

Schließen Sie Ihren cursor Jedes Mal, wenn Sie es verwenden, wird Ihr Problem gelöst

itemsCursor.close()

Da Sie dies nicht schließen, werden die Ressourcen des Cursors aus diesem Grund nicht freigegeben, wenn Sie Ihre Datenbank schließen, erhalten Sie diesen Fehler.

Machen Sie Ihren Cursor als globale Variable dann zu Ihrem onDestroy

@Override
protected void onDestroy() {
    super.onDestroy();
    itemsCursor.close();
    db.close();
}

Und während Sie jetzt close hinzufügen -Anweisung als letzte Anweisung von filldata Methode, der Adapter von listview bekommt keine Daten als cursor ist bereits freigegeben, daher erhalten Sie in der listview keine Daten .