Я обновляю свой объект (объект с 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();
}
});
Это должен быть довольно простой запрос, но я не понимаю, откуда происходит операция блокировки.
Спасибо всем