RxJava功能:
主要是实现异步操作的库,别的定语都在异步操作定义之上;
RxJava优势:
简洁,可读性强,后期维护方面;代码逻辑清晰,主线程与非主线程切换方便,能满足响应式需求
RxJava原理:
通过扩展的观察者模式实现的;
普通观察者模式原理:(Button -> 被观察者、OnClickListener -> 观察者、setOnClickListener() -> 订阅,onClick() -> 事件);
RxJava观察者模式原理:
Observable(被观察转者),Observer(观察者),Subscribe(订阅)事件,Observable和Observer通过Subscribe()方法实现订 阅,从而使Observable在必要的时候通知Observer;
RxJava观察者模式特点:
除了普通的onNext回调方法还有两个特殊的方法,onCompleted(事件完结触发),和onError(事件异常触发);
RxJava实现三步:
第一:创建Observer(观察者)决定事件触发以后的行为
或者创建Subscriber对象
Subscriber是对Observer接口进行了一些扩展
1.onStar()方法,但是该方法是异步的不可更新ui,更新ui使用;
2.doOnSubscribe()方法,更新ui;
3.unSubscribe()方法,取消订阅;
4.isUnSubscribed()方法,判断当前的订阅状态;
1.调用Observable.create()方法创建Observable对象,参数为Observable.OnSubscribe<?>()接口,返回值为Observable;
2.调用Observable.just(T...)创建Observable对象;
2.调用Observable.form(Iterable<? extends T>))创建Observable对象
注意:
订阅结束之后,Observable.subscribe(Subscriber)底层执行循序:
1.Subscriber.onStart();
2.OnSubscribe.call();
3.传入的Subscriber返回方便unsubscribe();