标题说明了一切。 我已经做了一些搜索,但没有找到任何具体的东西。
在执行 realm.executeTransactionAsync 之后,我需要调用 realm.close 还是异步事务处理它?
谢谢
编辑:根据EpidPandaForce,executeTransactionAsync在完成后关闭后台领域实例。
但是,如果从 UI 线程调用 executeTransactionAsync,关闭领域实例的正确方法是什么? 在事务中成功/失败?
您似乎正在寻找以下方案。
public void doWrite(MyObject obj) {
Realm realm = Realm.getDefaultInstance();
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm bgRealm) {
bgRealm.insert(obj); // assuming obj is unmanaged
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
realm.close();
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(Throwable error) {
realm.close();
}
});
}
在 Kotlin 中
fun doWrite(obj: RealmObject) {
val realm = Realm.getDefaultInstance()
realm.executeTransactionAsync({ bgRealm ->
bgRealm.insert(obj) // assuming obj is unmanaged
}, { realm.close() }, { realm.close() })
}