我在异步交易中更新了我的对象(一个有40-50个字段的对象,但我只更新了5-6个)。
为什么,事务的commit
(我的意思是从执行的最后一行到onSuccess()
调用的时间)大约需要5秒钟。
我只更新一个对象而只更新一些字段。我做错了什么?
这是我的代码
realm.executeTransactionAsync(new Realm.Transaction() {
@Override
public void execute(Realm realm) {
Intervention i = realm.where(Intervention.class).equalTo("ID", openedIntervention.getInterventionID()).findFirst();
if (i != null) {
i.setULTIMA_LETTURA_VECCHIO_MISURATORE(etOldMeterReading.getText() == null ? null : etOldMeterReading.getText().toString());
i.setLAST_UPDATE(Calendar.getInstance().getTime());
i.setMISURATORE_INSTALLATO_ID(etOldMeter.getTag() == null ? null : etOldMeter.getTag().toString());
if (etOldMeter.getTag() == null || etOldMeter.getTag().toString().isEmpty() || etOldMeter.getTag().toString().equals(RuntimeHelper.emptyUUIDString)) {
i.setMISURATORE_INSTALLATO(null);
}
}
}
}, new Realm.Transaction.OnSuccess() {
@Override
public void onSuccess() {
Log.d(TAG, "Fine save");
if (alsoLoad)
loadData();
}
}, new Realm.Transaction.OnError() {
@Override
public void onError(@NonNull Throwable error) {
Log.d("TAG", "MSG", error);
Toast.makeText(getActivity(), "Errore durante il salvataggio", Toast.LENGTH_SHORT).show();
}
});
这应该是一个非常简单的查询,但我不知道阻止操作的来源。
全部谢谢