2016-05-02 40 views
0

私はRealmをSqliteではなくAndroidストレージとして使い始めました。RealmはAndroidで物理的な削除をサポートしていますか?

私はいくつかの賛否両論を探すまでうまくいった。誰かが削除をサポートしていないと言った(私はショックを受けた)。ドキュメントにはセクションが削除されていることがわかりました。150行追加したサンプルアプリケーションを実装してから、following answer saidとして削除します。

削除後のリストのサイズは、論理的に正しい0です。しかし、エミュレータの 'data/data /'パスにあるmyDB.realmファイルのサイズを調べると、削除する前にファイルのサイズと同じサイズになっていました。それでRealmはアイテムを削除したり、物理的に削除したりしますか?

+2

さらに行を追加して、ファイルサイズが拡大または変わらないかどうかを確認します。それはスペースを再利用する可能性があります。 – cyroxis

+0

@cyroxisはい、行を追加するとファイルサイズが大きくなります。 – Amt87

+0

私は@ christian-melchiorの答えを試してみましたが、それは正常に動作しました – Amt87

答えて

1

データは物理的に削除されていますが、現時点ではRealmは使用済みスペースを自動的に再利用しません(TODOにあります)。その間に手動でRealm.compactRealm(realmConfig)に電話して、スペースを再利用することができます。https://realm.io/docs/java/latest/api/io/realm/Realm.html#compactRealm-io.realm.RealmConfiguration-

+0

ありがとう、ありがとう、Realm.compactRealm(realmConfig)を使用すると、私のために働いた。しかし、このRealm.compactRealm(mRealm.getConfiguration())のようなApplicationクラスで設定されている設定を使用した場合、それはうまくいかなかった。何か案が? – Amt87

+1

開いているレルムをコンパクトにすることはできません。これは起こっていた可能性が最も高いです。 –

関連する問題