我正在使用领域来存储和检索数据。通常当我们打开一个领域来存储一些我们喜欢的数据时:
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
// Copy the object to Realm
realm.copyToRealm(myObject);
realm.commitTransaction();
realm.close();
在上述情况下,我正在关闭这个领域。
但是当我检索一些数据时:
RealmResults<MyClass> results = Realm.getDefaultInstance().where(MyClass.class).findAll();
如何关闭这个领域?是否需要关闭?
答案 0 :(得分:14)
将其作为一个单行进行意味着你无法关闭王国,所以我会反对这个建议。
在最好的情况下,不关闭Realm会导致内存泄漏,并且如果在后台有更高的被系统杀死的可能性。最糟糕的情况是,您会看到磁盘使用率大幅增加,因为Realm必须跟踪已打开的Realm实例的所有版本(由于是MVCC数据库)。
我强烈建议使用你的第一个模式。有关控制Realm实例的详细信息,请参阅:https://realm.io/docs/java/latest/#realm-instance-lifecycle和此https://realm.io/news/threading-deep-dive/