RxJava 2、RoomDb 和处理

RxJava 2, RoomDb and Disposing

我正在尝试创建一个 DatabaseHelper class 来分离一些 Room 的东西。 DatabaseHelper 不是 Activity 或片段。我正在尝试执行以下操作

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

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

所以我想我不想使用 RX,而是想使用

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

然后把工作放在那里=]

与你的相似。我要补充一点,你应该将你的订阅 Disposable 添加到你的助手中的 CompositeDisposable,当父 Activity 被销毁时,链接一个调用来处理你的 CompositeDisposable