如果我想要运行和完成某些内容而不管生命周期和订阅者,是否遵循正确的方法来执行此操作?
我创建一个单身人士并运行一个" Job"从它如下:
public void clearImageCache() {
Single.fromCallable(() -> {
ImageManager.clearCacheFromBackground();
return true;
}
)
.observeOn(Schedulers.io())
.subscribeOn(AndroidSchedulers.mainThread())
.subscribe(ignored -> {
// finished
}, error -> {
// error
});
}
上述使用RxJava
进行背景工作的方式是否与活动和生命周期无关?无论如何我想要它完成。如果应用程序没有被销毁,我认为这应该是保存并且应该完成。可以这样做,还是我错过了一些我应该照顾的东西?
我不是在谈论退回的Disposable
,但我觉得这很好,因为我从来不想取消订阅。
答案 0 :(得分:0)
这将正常工作,直到你的应用程序没有从内存中被杀死,即从最近的任务,被迫停止或被os杀死。此外,您应subscribeOn
Schedulers.io()
,因为它会加载主线程并保持用户界面流畅。