我们是否需要提交交易' realm.commitTransaction''使用realm.executeTransactionAsync方法?

时间:2017-11-16 11:07:53

标签: android realm

我在测试我的应用程序时发现了什么。我已将一些数据复制到realm数据库,然后从其他进程复制,即SyncAdapter使用realm.executeTransactionAsync调用通过复制或更新方法更新数据。运行多次同步并从最近删除应用程序。数据将回滚到旧数据。任何人都有解决方案。以下是我的代码段:

final Realm realm = getRealm();
        realm.executeTransactionAsync(new Realm.Transaction() {
            @Override
            public void execute(Realm realm) {
                for (GetProductPriceResModel priceResModel : resBeanList)
                    priceResModel.generateSearchData();
                realm.copyToRealmOrUpdate(resBeanList);
                realm.commitTransaction();
            }
        }, new Realm.Transaction.OnSuccess() {
            @Override
            public void onSuccess() {
                if (callBack != null) callBack.onSuccess();
                closeRealm(realm);
            }
        }, new Realm.Transaction.OnError() {
            @Override
            public void onError(Throwable error) {
                if (callBack != null) callBack.onFailure(error);
            }
        });

1 个答案:

答案 0 :(得分:0)

当您使用executeTransactionexecuteTransactionAsync时,您不需要致电beginTransaction& commitTransaction,由域本身自动调用。

Source