El truco es muy simple, no cierre la base de datos, simplemente reinicie el DBHelper
.
Así que el método de reapertura podría ser:-
public static void reopen(Context context) {
instance = new DBHelper(context);
}
Por supuesto, también puede eliminar el texto que indica al usuario que cierre y reinicie la aplicación.
Entonces, el código que detecta e informa sobre una restauración exitosa podría ser:-
if(copytaken && origdeleted && restoredone) {
errlist.add("Database successfully restored.");
resulttitle = "Restore was successful.";
DBHelper.reopen(context); <== implemented as below
}