Android 数据库更改时不发出Flowable

Android 数据库更改时不发出Flowable,android,rx-java2,flowable,Android,Rx Java2,Flowable,在Room数据库中,我有一个id为1的对象用户,我的DAO正在返回该对象的一个可流动数据。订阅后,我调用editUser函数 @Query ("SELECT * FROM User Where id=:id ") Flowable<User> getUser(String id); @Update void update(User user); 每当我更改此用户对象并在DB中更新它时,我不会收到onNext或onComplete的任何回调 public void edi

在Room数据库中,我有一个id为1的对象用户,我的DAO正在返回该对象的一个可流动数据。订阅后,我调用editUser函数

 @Query ("SELECT * FROM User Where id=:id ")
 Flowable<User> getUser(String id);

 @Update
 void update(User user);
每当我更改此用户对象并在DB中更新它时,我不会收到onNext或onComplete的任何回调

 public void editUser() {
       User u = new User();
       u.id="1";
       u.age=45;
       appDB.userModel().update(u);
}

 appDB.userModel().getUser("1").subscribe(new Subscriber<User>() {
  @Override
  public void onSubscribe(Subscription s) {
    Log.d(TAG,"onSubscribed");
  }

  @Override
  public void onNext(User user) {
    Log.d(TAG,"onNext");
  }

  @Override
  public void onError(Throwable t) {
    Log.d(TAG,"Error");
  }

  @Override
  public void onComplete() {
    Log.d(TAG,"onComplete");
  }
});
有人能解释一下我在这里遗漏了什么吗?

订阅请求


您必须从订阅请求。您是否尝试过Flowable?你也可以尝试像Flowable这样的东西,尽管我认为这需要guava@akarnokd:如果我使用Subscription.OnNext,是否意味着我正在手动请求更新?Subscriber.OnNext是事件的接收者,它不会声明您希望接收的项目的时间和数量。@akarnokd:订阅时有一个被OnNext覆盖。您能告诉我如何/在哪里使用Subscriber.onNext吗。
appDB.userModel().getUser("1").subscribe(new Subscriber<User>() {
  @Override
  public void onSubscribe(Subscription s) {
    Log.d(TAG,"onSubscribed");
// ------------------------------------------------------------------------
    s.request(Long.MAX_VALUE);
// ------------------------------------------------------------------------
  }

  @Override
  public void onNext(User user) {
    Log.d(TAG,"onNext");
  }

  @Override
  public void onError(Throwable t) {
    Log.d(TAG,"Error");
  }

  @Override
  public void onComplete() {
    Log.d(TAG,"onComplete");
  }
});