特點:鏈式編程、線程切換方便
有三個主要對象:Observable、Observer、Subscribe
很多人喜歡把這三個對象分別叫做被觀察者、觀察者、以及訂閱。但這種命名方式其實不太好理解,因為往往在代碼中還要用到subscribeOn和observeOn這兩個方法,還有一個繼承了Observer的Subscriber抽象類,剛開始接觸RxJava時很容易將這幾個名稱個弄混,畢竟相似度太高了。
所以我覺得可以用另外一種命名方式。
Observable——郵局
Observer——收信者
Subscribe——送信
這樣就清晰多了,Observable有很多方法可以對數(shù)據(jù)進行處理,而他返回的對象都是Observable,就相當于是在郵局(Observable)內(nèi)部對信件(數(shù)據(jù))進行處理,不管怎么樣,這個階段都不會和收信者有任何關(guān)系。
郵局(Observable)對信件(數(shù)據(jù))做好處理,那么接下來就要送信了,利用一個郵遞員(Subscribe)將信件送到收信者(Observer)手中。
這種命名方式就清晰多了。
Observable——>送信——>Observer
subscribeOn——一般情況只能起一次作用,他之前及之后的代碼都會運行在他指定的線程當中,直到遇到observeOn為止。
observeOn——他之后的代碼運行他指定的線程中,直到遇到下一個ObserveOn為止。
至于Subscriber這個抽象類,完全可以把他當成一個單獨的東西,不要在理解rxjava之中對象名稱的時候去記這個東西,只要知道這個對象是繼承Observer就可以了。