完成或处置Observable / Completed时,RxJava2获取事件

时间:2017-03-30 12:40:53

标签: 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()); onErroronComplete会发生吗?

1 个答案:

答案 0 :(得分:14)

我做了一些测试,所以

订阅者取消订阅时会调用

HttpClient,完成后不会调用它。

HttpMessageHandler / doOnDispose成功完成后,将调用

doOnComplete。 (错误不会发生)

Observable / Completable发出错误时会调用

doOnError。 (Observable未被调用)。

Completable / OnComplete发出doOnTerminateObservable时,会调用

Completable。所以它是error + completes

doOnComplete / doOnError信号doFinallyCompletable或被处置时,会调用

Observable。所以它是onError + onComplete + doOnDispose

所以doOnError正是我所寻找的,谢谢akarnokd的帮助。