Trik je velmi jednoduchý, nezavírejte databázi, pouze resetujte DBHelper
.
Takže metoda znovuotevření by mohla být:-
public static void reopen(Context context) {
instance = new DBHelper(context);
}
Samozřejmě můžete také odstranit text, který uživateli říká, aby aplikaci zavřel a restartoval.
Takže kód, který detekuje a hlásí úspěšnou obnovu, by mohl být:-
if(copytaken && origdeleted && restoredone) {
errlist.add("Database successfully restored.");
resulttitle = "Restore was successful.";
DBHelper.reopen(context); <== implemented as below
}