Ich habe die java.lang.IllegalStateException
beim Versuch, die realm
Datei zu löschen.So schließen Sie() alle Instanzen des Realms, bevor Sie die Datei löschen
java.lang.IllegalStateException: Es ist nicht erlaubt, die mit einem offenen Realm verbundene Datei zu löschen. Denken Sie daran, zu schließen(), um alle Instanzen des Realm vor der Datei zu löschen: /data/data/com.mypackage.name/files/filename.realm
habe beide executeTransactionAsync
und executeTransaction
Methode. Also, ich denke, dass es eine Instanz async
gibt, die ich nicht schließen kann, bevor ich die ganze realm
Datei lösche. Wie kann ich alle Instanzen von realm
schließen oder löschen realm
Datei ohne diese Ausnahme zu bekommen?
Vielen Dank für Ihre Antwort. Das gleiche mit dem, was ich dachte. Nur eine Frage, warum 'Realm' die Anzahl von Realm-Instanzen über 'getLocgealInstanceCount'- oder' getGlobalInstanceCount'-Instanzen erhalten kann, aber nicht die Liste der Instanzen bekommt? Oder keine native Funktion, die alle Realm-Instanzen stoppt und schließt. – NamNH
Wir könnten eine "forceClose" -Methode machen, aber das würde höchstwahrscheinlich nur einen anderen Teil Ihrer App zum Absturz bringen, weshalb wir sie nicht hinzugefügt haben. –
Ich verstehe. Mit meinem begrenzten Wissen fand ich in der Quelle, dass 'executeTransactionAsync' eine neue' RealmAsyncTask' erstellt und mit jeder ausstehenden Transaktion Realm eine neue 'bgRealm' Instanz erstellt. Obwohl es nach 'submitTransaction' geschlossen werden kann, aber wenn es sich um eine Transaktion handelt, kann ich nicht alle Instanzen manuell stoppen, so dass ich die Realm-Datei nicht löschen kann. – NamNH