常用操作符
Observable.from()
- 它接收一個(gè)集合作為輸入,然后每次輸出一個(gè)元素給subscriber,將集合依次發(fā)送,
map
- 用來把把一個(gè)事件轉(zhuǎn)換為另一個(gè)事件的
flatmap
- 接收一個(gè)Observable的輸出作為輸入,同時(shí)輸出另外一個(gè)Observable
concatmap
- 類似flatmap,區(qū)別是遵循事件的順序
switchmap
- observable發(fā)送新數(shù)據(jù)時(shí),舊數(shù)據(jù)訂閱還未完成,取消舊的,開始新的
filter
- 過濾
take
- 指定數(shù)量
doOnNext
- 每次輸出一個(gè)元素之前做額外的事
doOnSubsrcibe
- 類似onStart(),不過可以指定線程,由之后的subscribeOn指定
subscribeOn
- 事件發(fā)送的線程,
subscribe()所發(fā)生的線程,即Observable.OnSubscribe被激活時(shí)所處的線程

img
obserberOn
- 事件接收的線程,
Subscriber所運(yùn)行在的線程,(可能是UI線程),切換之后操作所在的線程

img
Scheduler
- Schedulers.immediate() 默認(rèn)在當(dāng)前線程運(yùn)行
- Schedulers.newThread()
- Scheduler.io 和
newThread()差不多,區(qū)別在于io()的內(nèi)部實(shí)現(xiàn)是是用一個(gè)無數(shù)量上限的線程池,可以重用空閑的線程,因此多數(shù)情況下io()比newThread()更有效率 - Scheduler.commputation
- AndroidSchedulers.mainThread
CompositeSubscription
- 持有所有的Subscriptions,然后在onDestroy()或者onDestroyView()里取消所有的訂閱
debounce
- 發(fā)送指定時(shí)間以后的數(shù)據(jù),可用于防抖
onBackpressureBuffer
- 防止數(shù)據(jù)發(fā)送過快,緩存起來
ofType(class)
- 指定某個(gè)類型的class,過濾屬于這個(gè)類型的的結(jié)果,其它拋棄
buffer
- 收集單個(gè)事件輸出一個(gè)數(shù)組
concat
- 將多個(gè)observable ,按順序串聯(lián)起來
first
- 從串聯(lián)隊(duì)列中取出并發(fā)送第一個(gè)事件,也可以依次過濾(三級(jí)緩存)
compose
- 如果你只是想把幾個(gè)常用的操作函數(shù)封裝為一個(gè)函數(shù)來復(fù)用代碼,則請(qǐng)使用 compose()
- Read more: http://blog.chengyunfeng.com/?p=987#ixzz4UqrCbki2
combineLastest
-
CombineLatest操作符行為類似于zip,但是只有當(dāng)原始的Observable中的每一個(gè)都發(fā)射了一條數(shù)據(jù)時(shí)zip才發(fā)射數(shù)據(jù)。CombineLatest則在原始的Observable中任意一個(gè)發(fā)射了數(shù)據(jù)時(shí)發(fā)射一條數(shù)據(jù)。當(dāng)原始Observables的任何一個(gè)發(fā)射了一條數(shù)據(jù)時(shí),CombineLatest使用一個(gè)函數(shù)結(jié)合它們最近發(fā)射的數(shù)據(jù),然后發(fā)射這個(gè)函數(shù)的返回值。
doOnRequest
- 控制請(qǐng)求數(shù)量
- 參考:http://blog.chengyunfeng.com/?p=981
RxBinding
-
android 監(jiān)聽事件包裝
RxView.clicks
RxTextView.textChanges
RxAdapterView.itemClicks
?