SQLite
 sql >> Database >  >> RDS >> SQLite

Come posso aggiornare/riaprire un database SQLite dopo averlo ripristinato, quando si utilizza un singleton per l'helper del database

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
                }