加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

rx-java – RxJava中的CompositeDisposable是什么

发布时间:2020-12-14 23:59:17 所属栏目:Java 来源:网络整理
导读:我是安卓学生.我想Leans Rx Java.我的问题是“Rx Java中的CompositeDisposable是什么”. Pl详细描述. 解决方法 复合一次性使处理(认为提前取消更容易).假设您有一个活动同时发生多个api调用: var disposable = api.call1(arg1,arg2).subscribe(...)var disp
我是安卓学生.我想Leans Rx Java.我的问题是“Rx Java中的CompositeDisposable是什么”. Pl详细描述.

解决方法

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

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

disposable.dispose()
disposable2.dispose()
disposable3.dispose()

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

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

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

composite.dispose()

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

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

这使您能够表达为:

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

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读