特點(diǎn):鏈?zhǔn)骄幊檀纹隆⒕€程切換方便
有三個主要對象:Observable疼约、Observer敏沉、Subscribe
很多人喜歡把這三個對象分別叫做被觀察者果正、觀察者、以及訂閱盟迟。但這種命名方式其實(shí)不太好理解秋泳,因?yàn)橥诖a中還要用到subscribeOn和observeOn這兩個方法,還有一個繼承了Observer的Subscriber抽象類攒菠,剛開始接觸RxJava時很容易將這幾個名稱個弄混迫皱,畢竟相似度太高了。
所以我覺得可以用另外一種命名方式辖众。
Observable——郵局
Observer——收信者
Subscribe——送信
這樣就清晰多了卓起,Observable有很多方法可以對數(shù)據(jù)進(jìn)行處理,而他返回的對象都是Observable凹炸,就相當(dāng)于是在郵局(Observable)內(nèi)部對信件(數(shù)據(jù))進(jìn)行處理戏阅,不管怎么樣,這個階段都不會和收信者有任何關(guān)系啤它。
郵局(Observable)對信件(數(shù)據(jù))做好處理奕筐,那么接下來就要送信了,利用一個郵遞員(Subscribe)將信件送到收信者(Observer)手中变骡。
這種命名方式就清晰多了离赫。
Observable——>送信——>Observer
subscribeOn——一般情況只能起一次作用,他之前及之后的代碼都會運(yùn)行在他指定的線程當(dāng)中塌碌,直到遇到observeOn為止渊胸。
observeOn——他之后的代碼運(yùn)行他指定的線程中,直到遇到下一個ObserveOn為止台妆。
至于Subscriber這個抽象類翎猛,完全可以把他當(dāng)成一個單獨(dú)的東西,不要在理解rxjava之中對象名稱的時候去記這個東西接剩,只要知道這個對象是繼承Observer就可以了切厘。