Rxjava

1、Rxjava是什么:簡單來說,它就是一個實現(xiàn)異步操作的庫;

2、Rxjava的優(yōu)勢:結構簡單,程序邏輯清晰,編寫更加容易;隨著程序邏輯變得越來越復雜,它依然能夠保持簡潔。

3、Rxjava基本用法:

觀察者

被觀察者

訂閱

觀察者

Observer即觀察者,它決定事件觸發(fā)的時候將有怎樣的行為。

RxJava觀察者的事件回調(diào)方法除了普通事件onNext()(相當于onClick()/onEvent())之外,還定義了兩個特殊的事件:onCompleted()和onError()。

onCompleted():事件隊列完結。RxJava不僅把每個事件單獨處理,還會把它們看做一個隊列。RxJava規(guī)定,當不會再有新的onNext()發(fā)出時,需要觸發(fā)onCompleted()方法作為標志。

onError():事件隊列異常。在事件處理過程中出異常時,onError()

會被觸發(fā),同時隊列自動終止,不允許再有事件發(fā)出。

在一個正確運行的事件序列中,onCompleted()和onError()有且只有一個,并且是事件序列中的最后一個。需要注意的是,onCompleted()

和onError()二者也是互斥的,即在隊列中調(diào)用了其中一個,就不應該再調(diào)用另一個。

被觀察者

Observable即被觀察者,它決定什么時候觸發(fā)事件以及觸發(fā)怎樣的事件??梢允褂胏reate()、just(T...)、from(T[])或from(Iterable

T>)來創(chuàng)建一個Observable,并為它定義事件觸發(fā)規(guī)則。

1、使用Observable.just()創(chuàng)建被觀察者

Observable

observable2 = Observable.just("Hello", "World");

2、使用Observable.from()創(chuàng)建被觀察者

String

[] words = {"Hello", "World"};

Observable

observable3 = Observable.from(words);

訂閱

創(chuàng)建了Observable和Observer之后,再用subscribe()方法將它們聯(lián)結起來

觀察者

Subscriber

Action

Action是RxJava

的一個接口,常用的有Action0和Action1。

Action0: 它只有一個方法call(),這個方法是無參無返回值的;由于 onCompleted() 方法也是無參無返回值的,因此 Action0 可以被當成一個包裝對象,將onCompleted() 的內(nèi)容打包起來將自己作為一個參數(shù)傳入 subscribe() 以實現(xiàn)不完整定義的回調(diào)。

Ation1:它同樣只有一個方法 call(Tparam),這個方法也無返回值,但有一個參數(shù);與 Action0 同理,由于 onNext(T obj) 和 onError(Throwableerror) 也是單參數(shù)無返回值的,因此 Action1 可以將 onNext(obj)和 onError(error) 打包起來傳入 subscribe()以實現(xiàn)不完整定義的回調(diào)

三、轉換——map、flatMap

Func1,F(xiàn)unc1和上一篇提到的Action1相似。Func1

和 Action的區(qū)別在于, Func1 包裝的是有返回值的方法。

最后編輯于
?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容