L'astuce est très simple, ne fermez pas la base de données, réinitialisez simplement le DBHelper
.
Ainsi, la méthode de réouverture pourrait être :-
public static void reopen(Context context) {
instance = new DBHelper(context);
}
Bien sûr, vous pouvez également supprimer le texte indiquant à l'utilisateur de fermer et de redémarrer l'application.
Ainsi, le code qui détecte et signale une restauration réussie pourrait être :-
if(copytaken && origdeleted && restoredone) {
errlist.add("Database successfully restored.");
resulttitle = "Restore was successful.";
DBHelper.reopen(context); <== implemented as below
}