android - RxJava2 在 Observable/Completed 完成或处置时获取事件

标签 android rx-java rx-java2

我需要在订阅 Completable 时显示进度对话框,并在操作完成(成功或出错)或取消后隐藏它。

我也是

final Completable completable = notificationRepository.markAllAsRead()
        .doOnSubscribe(d -> progressDialog.show())
        .doOnError(error -> progressDialog.dismiss())
        .doOnComplete(() -> progressDialog.dismiss())
        .doOnDispose(() -> progressDialog.dismiss());

有什么优雅的方法可以在 onErroronCompleteonDispose 发生了吗?

最佳答案

我做了一些测试,所以

doOnDispose 在订阅者取消订阅时调用,完成后永远不会调用。

doOnCompleteObservable/Completable 成功完成时调用。 (错误不会发生)

doOnErrorObservable/Completable 发出错误时被调用。 (OnComplete 未被调用)。

doOnTerminateObservable/Completable 发出errorcompletes 时被调用.所以它是 doOnComplete + doOnError

doFinallyCompletable/Observable 信号 onErroronComplete 或被处置。所以它是 doOnDispose + doOnError +doOnComplete

doFinally 就是我要找的东西,谢谢 akarnokd 的帮助。

关于android - RxJava2 在 Observable/Completed 完成或处置时获取事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43118182/

相关文章:

android - 在 Ice Cream Sandwich 和果冻 bean 中阻止主页按钮

java - 如何在不启动新进程的情况下再次订阅 Observable?

android - 模拟改造可观察到的错误

rx-java - RxJava : execute a list of Single in parallel and get the results in a list in the same order

android - Android播放声音无延迟

android - 错误 : Cannot access database on the main thread since it may potentially lock the UI for a long period of time. - 使用 Kotlin 的 Android Room

android - 如果我不知道当前上下文,是否到处显示对话框?

java - RxJava滑动窗口

java - RxJava : combine two optional observables

java - 使用 rxjava 同步方法