Ich verwende Realm für Android, um einige Daten zu speichern. Wenn der Benutzer die Schaltfläche zum Abmelden drückt, möchte ich meine gesamte Realm-Datenbank löschen. Um das zu tun, habe ich den folgenden Code-Snippet:Wie überprüfen Sie, ob eine Realm-Instanz bereits geschlossen wurde?
realm.close();
realm.deleteRealmFile(this);
goToLoginActivity();
Das Problem jetzt in meiner onResume Funktion ist. Ich erhalte die folgende Ausnahme:
Verursacht von: java.lang.IllegalStateException: Diese Realm-Instanz wurde bereits geschlossen, wodurch sie unbrauchbar wird.
Mein onResume Code ist wie folgt:
@Override
protected void onResume() {
super.onResume();
// I'm trying to check if the realm is closed; this does not work
if (realm == null) {
realm = Realm.getInstance(this);
}
// Do query using realm
}
Wie kann ich überprüfen, um zu sehen, ob ein Bereich Objekt bereits geschlossen worden ist? Oder gibt es eine bessere Möglichkeit, die Datenbank zu löschen als die Realm-Datei zu löschen?
-
Edit: Gerade gesehen, How can I easily delete all objects in a Realm für iOS. Gibt es ein Wort darüber, wann die deleteAllObjects-API für Android verfügbar sein wird? Zum Zeitpunkt des Schreibens hat Android Version 0.80.0 und die API ist in iOS in 0.87.0 verfügbar.
können Sie bitte Grim's Antwort akzeptieren? Sieht so aus, als hätte er dir genau das gegeben, was du verlangst. –