RxJava

1.什么是RxJava(ReactiveX.io链式编程)

(1)定义:

一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。

总结:RxJava 是一个 基于事件流、实现异步操作的库

理解:RXJava是一个响应式编程框架  ,采用观察者设计模式,观察者模式本身的目的就是『后台处理,前台回调』的异步机制

(2)优点:

由于 RxJava是基于事件流的链式调用,所以使得 RxJava:

逻辑简洁

实现优雅

使用简单

(3)作用:

实现异步操作

类似于 Android中的 AsyncTask 、Handler作用


2.观察者模式

(1)定义:

在对象之间定义了一对多的依赖,这样一来,当一个对象改变状态,依赖它的对象会收到通知并自动更新。

(2)理解:

其实就是发布订阅模式,发布者发布信息,订阅者获取信息,订阅了就能收到信息,没订阅就收不到信息。

(3)使用场景:

有一个微信公众号服务,不定时发布一些消息,关注公众号就可以收到推送消息,取消关注就收不到推送消息。


3.Rxjava基本概念(观察者模式)

案例:按钮点击处理、广播注册

通过setOnClickListener()方法,Button持有OnClickListener的引用;当用户击时,Button自动调用OnClickListener的onClick()方法。

Button——>被观察者

OnClickListener——>观察者

setOnClickListener ——>订阅

onClick ——>事件


4. RxJava 有3个基本概念及原理

1.Observable(被观察者)

2.Observer(观察者)

3.subscribe(订阅)事件。

(1)原理:

被观察者(Observable)通过 订阅(Subscribe)按顺序发送事件 给观察者(Observer), 观察者(Observer)按顺序接收事件 & 作出对应的响应动作。

(2)普通事件 :

onNext() 接收被观察者发送的消息

(3)特殊的事件:

onCompleted() 事件队列完结

onError ()    事件队列异常


注意:

1)RxJava 不仅把每个事件单独处理,还会把它们看做一个队列。

2)RxJava 规定,onNext() 接收被观察者发送的消息、可以执行多次;当不会再有新的 onNext () 发出时,需要触发 onCompleted () 方法作为标志。onError():事件队列异常。在事件处理过程中出异常时,onError() 会被触发,同时队列自动终止,不允许再有事件发出。

3)在一个正确运行的事件序列中, onCompleted() 和 onError () 有且只有一个,并且是事件序列中的最后一个。

4)需要注意的是,onCompleted()和 onError () 二者也是互斥的,即在队列中调用了其中一个,就不应该再调用另一个。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容