当我订阅时我需要显示一个进度对话框Completable
并在操作完成(成功或有错误)或取消后隐藏它。
So I do
final Completable completable = notificationRepository.markAllAsRead()
.doOnSubscribe(d -> progressDialog.show())
.doOnError(error -> progressDialog.dismiss())
.doOnComplete(() -> progressDialog.dismiss())
.doOnDispose(() -> progressDialog.dismiss());
有没有什么优雅的方法来获得单一回调onError
, onComplete
or onDispose
发生?
我做了一些测试,所以
doOnDispose
当订阅者取消订阅时调用,完成后就不再调用。
doOnComplete
当Observable
/Completable
成功完成。 (错误不会发生)
doOnError
被调用时Observable
/Completable
发出错误。 (OnComplete
不被调用)。
doOnTerminate
被调用时Observable
/Completable
发出一个error
or completes
。所以就是doOnComplete
+ doOnError
doFinally
被调用时Completable
/Observable
信号onError
or onComplete
或被处置。原来如此doOnDispose
+ doOnError
+doOnComplete
.
So doFinally
就是我一直在寻找的,谢谢 akarnokd 的帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)