Sztuczka jest bardzo prosta, nie zamykaj bazy danych, tylko zresetuj DBHelper
.
Tak więc metodą ponownego otwarcia może być:-
public static void reopen(Context context) {
instance = new DBHelper(context);
}
Oczywiście możesz również pozbyć się tekstu informującego użytkownika o zamknięciu i ponownym uruchomieniu aplikacji.
Tak więc kod, który wykrywa i zgłasza pomyślne przywrócenie, może wyglądać następująco:-
if(copytaken && origdeleted && restoredone) {
errlist.add("Database successfully restored.");
resulttitle = "Restore was successful.";
DBHelper.reopen(context); <== implemented as below
}