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

Wie kann ich eine SQLite-Datenbank nach der Wiederherstellung aktualisieren/erneut öffnen, wenn ich einen Singleton für den Datenbankhelfer verwende

Der Trick ist sehr einfach, schließen Sie nicht die Datenbank, sondern setzen Sie den DBHelper zurück .

Die Wiedereröffnungsmethode könnte also lauten:-

public static void reopen(Context context) {
        instance = new DBHelper(context);
    }

Natürlich könnten Sie auch auf den Text verzichten, der den Benutzer auffordert, die App zu schließen und neu zu starten.

Der Code, der eine erfolgreiche Wiederherstellung erkennt und darüber berichtet, könnte also folgendermaßen aussehen:-

if(copytaken && origdeleted && restoredone) {
                    errlist.add("Database successfully restored.");
                    resulttitle = "Restore was successful.";
                    DBHelper.reopen(context); <== implemented as below
                }