Работа с базой данных Android выполняется только один раз - PullRequest
0 голосов
/ 17 октября 2018

Я работаю над приложением для 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 не работает должным образом.

Как я могу это сделать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...