0
私のアプリケーションのテスト中に見つかったもの。私はrealmデータベースにいくつかのデータをコピーし、次に他のプロセス、すなわちSyncAdapterからrealm.executeTransactionAsyncコールを使用してコピーまたは更新メソッドによってデータを更新します。同期を複数回実行し、アプリを後から削除します。データは古いデータにロールバックされます。いずれにもこれに対する解決策がありますか?以下は私のコードスニペットです:realm.executeTransactionAsyncメソッドを使用しているときにトランザクション '' realm.commitTransaction ''をコミットする必要がありますか?
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);
}
});
ありませんあなたは、バックグラウンドトランザクションをコミットするべきではありません、それが内部的に行われています – EpicPandaForce