RxJava 2,RoomDb和Disposing

时间:2018-05-24 21:29:41

标签: android rx-java2 android-room

我试图创建一个DatabaseHelper类来分隔出一些Room的东西。 DatabaseHelper不是Activity或Fragment。我试图做以下的事情

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

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

2 个答案:

答案 0 :(得分:0)

所以我认为不是去RX,我想用

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

然后把工作放在那里=]

答案 1 :(得分:0)

This question与您的相似。我想补充一点,您应该将订阅Disposable添加到帮助程序中的CompositeDisposable,并且在销毁父活动时,将调用链接以处置您的CompositeDisposable