を動作していないが、私はcompactRealm機能をテストするために書いた簡単なテストコードです。レルムアンドロイド:compactRealm予想通りここ
private void compactRealmTest(int count){
Realm realm = Realm.getDefaultInstance();
for(int i=0;i<count;++i) {
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Person p = Person.getRandomPerson();
realm.copyToRealm(p);
}
});
final RealmResults<Person> personList = realm.where(Person.class).findAll();
realm.executeTransaction(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
int size = personList.size();
for(int i=0;i<size;++i){
personList.deleteFirstFromRealm();
}
}
});
}
realm.close();
}
この関数は、オブジェクトを挿入し、Realmからそのオブジェクトをただちに削除します。この関数が終了すると、領域dbにはオブジェクトが含まれません。この関数を実行した後にオブジェクトがなくても、領域ファイルのサイズは〜4.5MBになりました(compactRealmTest(1000)
を呼び出した後)。私はcompactRealm()
関数を呼び出して領域をコンパクト化することに決めました。ファイルサイズは〜4.5MBから3.5MBに縮小されました。レルムにオブジェクトがないのにレルムがまだ3.5MBを使用しているのはなぜですか?
あなたはこの問題上の任意の答えや参照を取得しましたか? –
私の解決策をお試しください: http://stackoverflow.com/questions/34217476/android-realm-large-file-size/42959238#42959238 –