java disposable_rx-java – RxJava中的CompositeDisposable是什么
復(fù)合一次性使處理(認(rèn)為提前取消更容易).假設(shè)您有一個(gè)活動(dòng)同時(shí)發(fā)生多個(gè)api調(diào)用:
var disposable = api.call1(arg1,arg2).subscribe(...)
var disposable2 = api.call2(arg1).subscribe(...)
var disposable3 = api.call3().subscribe()
如果您需要提前處置(例如,用戶(hù)導(dǎo)航遠(yuǎn)離活動(dòng)),那么您需要這樣做:
disposable.dispose()
disposable2.dispose()
disposable3.dispose()
如果您改為使用CompositeDisposable,則可以將所有一次性物品存儲(chǔ)在其中.像這樣:
val composite = CompositeDisposable()
composite.add(api.call1(arg1,arg2).subscribe(...))
composite.add(api.call2(arg1).subscribe(...))
composite.add(api.call3().subscribe())
然后你可以撥打一個(gè)處理電話:
composite.dispose()
如果您使用的是kotlin,您可以使用運(yùn)算符重載來(lái)使其看起來(lái)更好:
fun CompositeDisposable.plusAssign(disposable: Disposable){
this.add(disposable)
}
這使您能夠表達(dá)為:
val composite = CompositeDisposable()
composite += api.call1(arg1,arg2).subscribe(...)
composite += api.call2(arg1).subscribe(...)
composite += api.call3().subscribe()
Disposable表示請(qǐng)求(認(rèn)為正在完成工作)并且有一個(gè)名為dispose的方法來(lái)處理請(qǐng)求.
總結(jié)
以上是生活随笔為你收集整理的java disposable_rx-java – RxJava中的CompositeDisposable是什么的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ds18b20触摸没反应_DS18B20
- 下一篇: Web前端期末大作业--汽车主题网页设计