我在测试我的应用程序时发现了什么。我已将一些数据复制到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);
}
});
答案 0 :(得分:0)
当您使用executeTransaction
或executeTransactionAsync
时,您不需要致电beginTransaction
& commitTransaction
,由域本身自动调用。