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
。
我正在尝试创建一个 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
。