【问题标题】:RxJava 2, RoomDb and DisposingRxJava 2、RoomDb 和处置
【发布时间】:2018-11-04 05:12:55
【问题描述】:

我正在尝试创建一个 DatabaseHelper 类来分离一些 Room 事物。 DatabaseHelper 不是 Activity 或 Fragment。我正在尝试执行以下操作

 roomDb.mediaItemDownloadDao()
            .findById(mediaItemId)
            .subscribeOn(Schedulers.io())
            .subscribe(oldDownload -> {
                oldDownload.setSomeField(true);
                roomDb.mediaItemDownloadDao().insert(oldDownload);
            });
}

但它告诉我订阅的结果没有被使用。有没有办法确保执行然后立即处理?我应该将一次性传递给来电者吗?在片段/活动之外完成我想要的/使用 rx 对象的最佳方法是什么?

【问题讨论】:

    标签: android rx-java2 android-room


    【解决方案1】:

    所以我想我不想为此去 RX,而是想使用

     rx.schedulers.Schedulers.io().createWorker()
    

    然后把工作放在那里 =]

    【讨论】:

      【解决方案2】:

      This question 与您的相似。我要补充一点,您应该将您的订阅 Disposable 添加到您的助手中的 CompositeDisposable 中,并且当父 Activity 被销毁时,链接调用以处置您的 CompositeDisposable

      【讨论】:

      • 我更关注在下载服务的情况下如何做到这一点,所以我认为消除对复合/活动/等的需求并使用调度程序是我想要的路径。
      猜你喜欢
      • 2017-11-24
      • 2017-01-01
      • 2016-02-17
      • 1970-01-01
      • 2016-08-29
      • 2018-10-26
      • 1970-01-01
      • 1970-01-01
      • 2017-05-13
      相关资源
      最近更新 更多