Rxjava

作者: 咖啡屋的蒲公英 | 来源:发表于2017-01-13 09:41 被阅读31次

1、Rxjava是什么:简单来说,它就是一个实现异步操作的库;

2、Rxjava的优势:结构简单,程序逻辑清晰,编写更加容易;随着程序逻辑变得越来越复杂,它依然能够保持简洁。

3、Rxjava基本用法:

观察者

被观察者

订阅

观察者

Observer即观察者,它决定事件触发的时候将有怎样的行为。

RxJava观察者的事件回调方法除了普通事件onNext()(相当于onClick()/onEvent())之外,还定义了两个特殊的事件:onCompleted()和onError()。

onCompleted():事件队列完结。RxJava不仅把每个事件单独处理,还会把它们看做一个队列。RxJava规定,当不会再有新的onNext()发出时,需要触发onCompleted()方法作为标志。

onError():事件队列异常。在事件处理过程中出异常时,onError()

会被触发,同时队列自动终止,不允许再有事件发出。

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

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

被观察者

Observable即被观察者,它决定什么时候触发事件以及触发怎样的事件。可以使用create()、just(T...)、from(T[])或from(Iterable

T>)来创建一个Observable,并为它定义事件触发规则。

1、使用Observable.just()创建被观察者

Observable

observable2 = Observable.just("Hello", "World");

2、使用Observable.from()创建被观察者

String

[] words = {"Hello", "World"};

Observable

observable3 = Observable.from(words);

订阅

创建了Observable和Observer之后,再用subscribe()方法将它们联结起来

观察者

Subscriber

Action

Action是RxJava

的一个接口,常用的有Action0和Action1。

Action0: 它只有一个方法call(),这个方法是无参无返回值的;由于 onCompleted() 方法也是无参无返回值的,因此 Action0 可以被当成一个包装对象,将onCompleted() 的内容打包起来将自己作为一个参数传入 subscribe() 以实现不完整定义的回调。

Ation1:它同样只有一个方法 call(Tparam),这个方法也无返回值,但有一个参数;与 Action0 同理,由于 onNext(T obj) 和 onError(Throwableerror) 也是单参数无返回值的,因此 Action1 可以将 onNext(obj)和 onError(error) 打包起来传入 subscribe()以实现不完整定义的回调

三、转换——map、flatMap

Func1,Func1和上一篇提到的Action1相似。Func1

和 Action的区别在于, Func1 包装的是有返回值的方法。

相关文章

网友评论

      本文标题:Rxjava

      本文链接:https://www.haomeiwen.com/subject/keojbttx.html