如何查询会议室数据库并根据需要立即获得结果?

时间:2018-10-04 10:14:51

标签: android database android-room

我有一个查询,当满足某些条件时会返回布尔值值。该值用于适配器服务中和其他 Aysnc 任务没有返回类型。因此,如何对数据库进行适当的查询并获得结果。我还制作了 repository 类,并尽可能使用它。

在这里有一种情况,根据Google架构,您应该 线程上使用查询准则

如果更改该值,我不希望该值触发任何其他功能。我只想在需要时查询它,然后将结果传递给方法。

我面临的下一个问题是我不能 呼叫视图模型,其中存在任何方法 服务适配器。我想使用服务 插入数据或删除数据,并且还想使用适配器中使用的条件来更新 列表

我正在尝试浏览会议室数据库。因此,请指导我取得最佳结果。

1 个答案:

答案 0 :(得分:0)

此处是有关Room Rx方法的文章 https://medium.com/androiddevelopers/room-rxjava-acb0cd4f3757

关键是要不返回对象,而是要从Room返回Observable(也许在此示例中)

@Query(“SELECT * FROM Users WHERE id = :userId”)
Maybe<User> getUserById(String userId);

然后,您可以在不使用任何AsynTask的情况下在单独的线程中获取数据

mDatabase.userDao()
  .getUserById(USER.getId())
  .subscribeOn(Schedulers.computation())
  .observeOn(AndroidSchedulers.mainThread())
  .subscribe(user -> doSomethigWithUser(user));



private void doSomethigWithUser(User user) {
.....
}