我有这个问题:
@Query("SELECT * FROM Movie")
LiveData<List<Movie>> getAll();
这是我的ViewModel:
public class MainActivityViewModel extends ViewModel {
@Inject AppDatabase db;
private LiveData<List<Movie>> data;
public MainActivityViewModel() {
MovieApp.graph().inject(this);
data = db.movieDao().getAll();
}
LiveData<List<Movie>> getData() {
return data;
}
}
在onCreate of my Activity中,我打电话给:
viewModel.getData().observe(this, adapter::setMovies);
在JobService我下载了一个Json并将其转换为Room个对象并调用
db.movieDao().insertAll(movies.results);
但没有任何反应: - (
我是否必须手动触发房间刷新或自动为我设置房间?我想念一下吗?
修改
我添加了一些注销,这是到目前为止按顺序发生的事情:
MainActivityViewModel
已创建并致电db.movieDao().getAll()
viewModel.getData().observe(this, adapter::setMovies)
setMovies
使用0数据db.movieDao().insertAll(movies.results)
此时我希望来自Room的刷新调用,因为数据库数据已经改变但没有任何反应。