标题说明了一切。我已经做了一些搜索,但没有找到具体的东西。
在执行realm.executeTransactionAsync之后是否需要调用realm.close或是否执行异步事务处理?
谢谢
编辑:根据EpidPandaForce,executeTransactionAsync在完成后关闭后台域实例。
但是,如果从UI线程调用executeTransactionAsync,关闭realm实例的正确方法是什么?在onSuccess / onFailure上的交易中?
答案 0 :(得分:3)
您似乎正在寻找以下方案。
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();
}
});
}
答案 1 :(得分:0)
在科特林
fun doWrite(obj: RealmObject) {
val realm = Realm.getDefaultInstance()
realm.executeTransactionAsync({ bgRealm ->
bgRealm.insert(obj) // assuming obj is unmanaged
}, { realm.close() }, { realm.close() })
}