rx-java – RxJava中的CompositeDisposable是什么

前端之家收集整理的这篇文章主要介绍了rx-java – RxJava中的CompositeDisposable是什么前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是安卓学生.我想Leans Rx Java.我的问题是“Rx Java中的CompositeDisposable是什么”. Pl详细描述.

解决方法

复合一次性使处理(认为提前取消更容易).假设您有一个活动同时发生多个api调用: @H_404_6@var disposable = api.call1(arg1,arg2).subscribe(...) var disposable2 = api.call2(arg1).subscribe(...) var disposable3 = api.call3().subscribe()

如果您需要提前处置(例如,用户导航远离活动),那么您需要这样做:

@H_404_6@disposable.dispose() disposable2.dispose() disposable3.dispose()

如果您改为使用CompositeDisposable,则可以将所有一次性物品存储在其中.像这样:

@H_404_6@val composite = CompositeDisposable() composite.add(api.call1(arg1,arg2).subscribe(...)) composite.add(api.call2(arg1).subscribe(...)) composite.add(api.call3().subscribe())

然后你可以拨打一个处理电话:

@H_404_6@composite.dispose()

如果您使用的是kotlin,您可以使用运算符重载来使其看起来更好:

@H_404_6@fun CompositeDisposable.plusAssign(disposable: Disposable){ this.add(disposable) }

这使您能够表达为:

@H_404_6@val composite = CompositeDisposable() composite += api.call1(arg1,arg2).subscribe(...) composite += api.call2(arg1).subscribe(...) composite += api.call3().subscribe()

Disposable表示请求(认为正在完成工作)并且有一个名为dispose的方法来处理请求.

猜你在找的Java相关文章