RxJava分析

RxJava功能

主要是实现异步操作的库,别的定语都在异步操作定义之上;


RxJava优势

简洁,可读性强,后期维护方面;代码逻辑清晰,主线程与非主线程切换方便,能满足响应式需求

 

RxJava原理

通过扩展的观察者模式实现的;

普通观察者模式原理:(Button -> 被观察者、OnClickListener -> 观察者、setOnClickListener() -> 订阅,onClick() -> 事件);

RxJava观察者模式原理

Observable(被观察转者)Observer(观察者)Subscribe(订阅)事件,ObservableObserver通过Subscribe()方法实现订 阅,从而使Observable在必要的时候通知Observer


RxJava观察者模式特点

除了普通的onNext回调方法还有两个特殊的方法,onCompleted(事件完结触发),onError(事件异常触发);

RxJava实现三步:


第一:创建Observer(观察者)决定事件触发以后的行为


或者创建Subscriber对象


Subscriber是对Observer接口进行了一些扩展


1.onStar()方法,但是该方法是异步的不可更新ui,更新ui使用;

2.doOnSubscribe()方法,更新ui

3.unSubscribe()方法,取消订阅;

4.isUnSubscribed()方法,判断当前的订阅状态;

第二:创建Observable对象

1.调用Observable.create()方法创建Observable对象,参数为Observable.OnSubscribe<?>()接口,返回值为Observable;



2.调用Observable.just(T...)创建Observable对象;



2.调用Observable.form(Iterable<? extends T>))创建Observable对象

 

第三:调用Observable.Subscriabe()实现观察者Observer对被观察者Observable的订阅

 

注意:

订阅结束之后,Observable.subscribe(Subscriber)底层执行循序:


1.Subscriber.onStart();

2.OnSubscribe.call();

3.传入的Subscriber返回方便unsubscribe();


你可能感兴趣的:(android,RxJava优势,RxJava好处,RxJava实现)