当前位置: 首页 > 知识库问答 >
问题:

数据库更改时可流动不发射

秋阳旭
2023-03-14

在Room数据库中,我有一个id为“1”的对象(用户),并且我的DAO正在返回该对象的一个Flowable。订阅之后,我调用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");
  }
});

共有1个答案

贲铭
2023-03-14

来自订阅的请求!

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");
  }
});
 类似资料:
  • 问题内容: 我有一个针对ui-select2下拉菜单的手表设置(来自ui-bootstrap)。手表会在加载时触发,但不会在数据更改时触发,我不知道为什么。 不应用模型更改或不使用第三个参数进行相等性比较(至少来自我的代码)不是一个常见的问题。 我需要怎么做才能使其点火? 这是一个说明问题的小问题。 问题答案: 我修好了一些东西。 http://plnkr.co/edit/5Zaln7QT2gET

  • UserViewModel: 用户存储库:

  • 这个问题可能已经得到了回答,我读过很多类似的,但对我不起作用。因此,我的具有扩展的自定义表模型。我的数据是和列名。那么,当我的数据发生更改时,如何更新表呢?我一直在使用,它正在工作,但它将我的自定义单元格呈现器重置为默认值。谢了。

  • 我有一个小的应用程序,用户可以拖放一个HTML表中的任务。 当用户删除任务时,我调用一个名为的javascript函数: 在task_update.php中,我得到我的值;、&并执行PDO更新查询来更新我的数据库。如果查询正确执行,则I 对我来说,最好的做法是什么?

  • 我试图在下面的代码中找出,为什么当我用新数据填充数据库时,Room的LiveData observable没有给我新的班次。 这是放在我的activity的onCreate方法上的: 这是populateAdapter方法: 我还有以下填充数据库的代码(我使用RxJava在IO线程上完成这项工作,因为Room需要在主线程之外调用它的代码): 当我开始观察ShiftsViewModel之后调用per

  • 问题内容: 背景 我的小组有4个SQL Server数据库: Production UAT Testing Developer 我在开发环境中工作。当需要提升我一直在处理的对象(表,视图,函数,存储的过程)的时候,我向经理提出了要求,经理将其提升为Test。经过测试后,她向提升为UAT的管理员提交了请求。在成功进行用户测试之后,同一管理员将晋升为正式生产。 问题 出于某些原因,整个过程很尴尬。 每