web-dev-qa-db-fra.com

Comment effacer la base de données dans le royaume sous Android

Je souhaite effacer toute la base de données lorsqu'un utilisateur appuie sur le bouton de déconnexion et charge de nouvelles données lorsqu'un autre utilisateur se connecte

try {
        Realm.deleteRealm(realmConfiguration);   
    } catch (Exception ex){
        throw ex;
    }

Également

 try {
        Realm.deleteRealmFile(getActivity());
        //Realm file has been deleted.
    } catch (Exception ex){
        ex.printStackTrace();
        //No Realm file to remove.
    }

Mais aucun des codes ne fonctionne ... Merci d'avance.

11
sumit mehra

Lorsque vous appelez Realm.deleteRealm() , vous devez vous assurer que toutes les instances de royaume sont fermées, sinon une exception sera levée sans rien supprimer. En appelant cette méthode, tous les fichiers de domaine sont supprimés, ce qui signifie que tous les objets et schémas ont disparu. Catching toutes les exceptions est une mauvaise pratique pour tous les cas généraux.

Ou vous pouvez appeler Realm.delelteAll() dans un bloc de transaction. Cela ne nécessite pas la fermeture de toutes les instances de domaine. Cela supprimera simplement tous les objets du royaume sans effacer les schémas. Et encore une fois, ne prenez pas toutes les exceptions.

28
beeender

Si vous êtes sûr qu'il n'y a pas d'autres bases de données que vous souhaitez enregistrer, vous pouvez également supprimer toutes les autres données. vous pouvez suivre cette réponse Effacer les données de l'application par programme

0
erluxman