Я работаю над приложением для Android с базой данных комнат.
Все было хорошо, пока я не заметил, что операции над базой данных работают первые два раза.
Я запрашиваю одну операцию (Вставка, Обновление) и работает, я запрашиваю ту же операцию снова иработает, но после него ничего не обновляется.
Активность:
private void updateCounter()
{
entity.setCounter(entity.getCounter()++);
viewModel.update(entity);
}
В VIEWMODEL:
public void update(TestEntity entity) {
testRepository.update(entity);
}
В хранилище:
public void update(TestEntity entity) {
executor.execute(() -> {
resultDao.update(entity);
});
}
В DAO:
@Update
int update(TestEntity entity);
Итак, я вызываю updateCounter () после нажатия кнопки ... Я проверяю браузер базы данных, и данные обновляются.Я снова нажимаю на кнопку, и данные снова обновляются, но при повторном нажатии не обновляются.Я попытался использовать INSERT вместо UPDATE с onConflict = REPLACE и то же самое.
Я использую библиотеку com.amitshekhar.android:debug-db:1.0.4 для просмотра базы данных в браузере.
В репозитории я использую исполнители для операций.
AppExecutors executors = new AppExecutors();
this.executor = executors.diskIO();
И я понял, что если я перейду на mainThread, а DiskIO не работает должным образом.
Как я могу это сделать?