Я использую Room
и в Dao
у меня есть этот метод:
LiveData<List<Books>> getAllBooks();
В MainActivity я подписался на этот метод из ViewModel
.Изменения в данных вызывают обратный вызов onChanged()
:
viewModel.getAllBooks()
.observe(this, books -> {
Log.d(TAG, "onChanged()");
booksListAdapter.setData(new ArrayList<>(books));
});
Что я хотел бы знать, что представляет собой обновление?При первом запуске приложения я делаю 100 вставок, каждая из которых меняет базу данных, но onChanged()
не вызывается 100 раз.В прошлый раз, когда я проверил, он вызвал onChanged()
в первый раз, который, я думаю, всегда вызывает при запуске, а затем еще два вызова.
Могу ли я контролировать это?Например, если я знаю, что я буду делать 100 вставок, возможно, было бы лучше, если бы я получил обратный вызов только в конце вставок.