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 包裝的是有返回值的方法。