2016-06-06 5 views
8

ich gesamte Datenbank löschen möchten löschen, wenn ein Benutzer drücken Sie die Taste Logout und eine neue Daten lädt, wenn ein anderer Benutzer login.I viele Lösungen wieWie Datenbank in Realm in Android

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

Auch

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

Aber keiner der Code funktioniert. Vielen Dank im Voraus.

Antwort

21

Wenn Sie Realm.deleteRealm() anrufen, müssen Sie sicherstellen, dass alle Realm-Instanzen geschlossen sind, andernfalls wird eine Ausnahme ausgelöst, ohne etwas zu löschen. Durch den Aufruf dieser Methode werden alle Realm-Dateien gelöscht, dh alle Objekte & Schemas sind verschwunden. Das Einfangen aller Ausnahmen ist eine schlechte Vorgehensweise für allgemeine Fälle.

Oder Sie können Realm.delelteAll() in einem Transaktionsblock aufrufen. Dies erfordert nicht, dass alle Realm-Instanzen geschlossen sind. Es wird nur alle Objekte im Realm löschen, ohne die Schemas zu löschen. Und wieder, fangen Sie nicht alle Ausnahmen ein.

+0

Löschen beide Methoden auch die Daten von 'RealmConfiguration # initialData()'? – Heinrich

+0

ja, das ist klar. – beeender

+1

für die neueste Version 4.3 müssen Sie Realm-Konfiguration sowie z. Realm.deleteRealm (Realm.getDefaultConfiguration()) – Killer

Verwandte Themen