【发布时间】:2018-11-25 15:35:18
【问题描述】:
我正在使用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 次插入,那么如果我只在插入结束时得到回调可能会更好。
【问题讨论】:
标签: android android-room android-components