当我订阅( ; ; )
并在操作完成后(成功或出错)隐藏它或被取消时,我需要显示进度对话框。
所以我做了
Completable
有什么优雅的方法可以获得单个回调
final Completable completable = notificationRepository.markAllAsRead()
.doOnSubscribe(d -> progressDialog.show())
.doOnError(error -> progressDialog.dismiss())
.doOnComplete(() -> progressDialog.dismiss())
.doOnDispose(() -> progressDialog.dismiss());
,onError
或onComplete
会发生吗?
答案 0 :(得分:14)
我做了一些测试,所以
订阅者取消订阅时会调用 HttpClient
,完成后不会调用它。
HttpMessageHandler
/ doOnDispose
成功完成后,将调用 doOnComplete
。 (错误不会发生)
Observable
/ Completable
发出错误时会调用 doOnError
。 (Observable
未被调用)。
Completable
/ OnComplete
发出doOnTerminate
或Observable
时,会调用 Completable
。所以它是error
+ completes
doOnComplete
/ doOnError
信号doFinally
或Completable
或被处置时,会调用 Observable
。所以它是onError
+ onComplete
+ doOnDispose
。
所以doOnError
正是我所寻找的,谢谢akarnokd的帮助。