我在测试我的应用程序时发现了什么。我已经将一些数据复制到 Realm 数据库,然后从其他进程(即 SyncAdapter)使用 realm.executeTransactionAsync 调用通过复制或更新方法更新数据。多次运行同步并从最近的应用程序中删除该应用程序。数据回滚到旧数据。有没有人对此有解决方案。以下是我的代码 fragment :
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);
}
});
最佳答案
当您使用 executeTransaction
或 executeTransactionAsync
时,您不需要调用 beginTransaction
和 commitTransaction
,这由 Realm 本身自动调用。
关于android - 使用 realm.executeTransactionAsync 方法时是否需要提交事务 '' realm.commitTransaction''?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47328093/