RxJava - 以节省方式将其用于全球工作

时间:2018-02-12 08:23:24

标签: android rx-java rx-java2

如果我想要运行和完成某些内容而不管生命周期和订阅者,是否遵循正确的方法来执行此操作?

我创建一个单身人士并运行一个" Job"从它如下:

public void clearImageCache() {
    Single.fromCallable(() -> {
                ImageManager.clearCacheFromBackground();
                return true;
            }
    )
            .observeOn(Schedulers.io())
            .subscribeOn(AndroidSchedulers.mainThread())
            .subscribe(ignored -> {
                // finished
            }, error -> {
                // error
            });
}

上述使用RxJava进行背景工作的方式是否与活动和生命周期无关?无论如何我想要它完成。如果应用程序没有被销毁,我认为这应该是保存并且应该完成。可以这样做,还是我错过了一些我应该照顾的东西?

我不是在谈论退回的Disposable,但我觉得这很好,因为我从来不想取消订阅。

1 个答案:

答案 0 :(得分:0)

这将正常工作,直到你的应用程序没有从内存中被杀死,即从最近的任务,被迫停止或被os杀死。此外,您应subscribeOn Schedulers.io(),因为它会加载主线程并保持用户界面流畅。