Il trucco è molto semplice, non chiudere il database ma resettare il DBHelper
.
Quindi il metodo di riapertura potrebbe essere:-
public static void reopen(Context context) {
instance = new DBHelper(context);
}
Naturalmente, potresti anche eliminare il testo che dice all'utente di chiudere e riavviare l'app.
Quindi il codice che rileva e segnala un ripristino riuscito potrebbe essere:-
if(copytaken && origdeleted && restoredone) {
errlist.add("Database successfully restored.");
resulttitle = "Restore was successful.";
DBHelper.reopen(context); <== implemented as below
}