Realm executeTransactionAsync 是否关闭了实例



标题说明了一切。 我已经做了一些搜索,但没有找到任何具体的东西。

在执行 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() })
    }

最新更新