RxJava

rxjava它就是一个实现异步操作的库.同样是做异步,为什么人们用它,而不用现成的 AsyncTask / Handler / XXX /异步操作很关键的一点是程序的简洁性.它和普通的观察者完全不同标准观察者模式只有一个被观察者 多个观察者并且被观察者改变通知观察者才能挂查到RxJava 中是多个被观察者一个观察者,并且需要起点和终点订阅一次后,才发出改变通知,终点(观察者)才能察觉到,所以也叫订阅模式


1.Observer 四个接口  onSubscribe  onNext onError  onComplete 

2.Observable创建过程ObSservable.creat()里面放一个自定义的Source

3.subscribe 订阅流程 observableCreate.subscribe() 里面放自定义的观察者observer

方法里面调用subscribeActual();从右往左再从左向右 U型结构



rxJava的Hook

每一个操作符的实现都有 RxJavaPlugins.onAssembly() 方法进去的参数和返回的参数是一样的。中间有个默认为空的onObserableAssembly可以为其赋值实现Hook。

关于Map的分析


tip

1.rxjava 引入为什么还要rxandroid  (补全rxjava) 线程切换用的rxandroid

.oobserverOn(Schedulers.io)//给上面的分配io子线程线程 里面的返回和上面的hook一样我们可以重写方法hook用于监听io线程使用次数。或者其他

.observerOn(Android.mainThread)主线程


Rxjava+Retryfit结合

retryfit 运用动态代理  以及注解 和反射 在写接口的时候返回observiable和rxjava融合成为起点。动态代理操作单元: 接口  实现   代理  接口传入代理类卡返回实例化的数据。

rxbinding(防抖)

rxview.click(控件id).throttleFirst(2s,1次).subscribe()......

解决网络嵌套(flatmap)


doOnnext()


你可能感兴趣的:(RxJava)