您的位置:首页 > 编程语言 > Java开发

RXJava——创建 Observable

2016-06-27 18:22 375 查看
Observable 即被观察者,它决定什么时候触发事件以及触发怎样的事件。 RxJava 使用
create()
方法来创建一个 Observable ,并为它定义事件触发规则:

Observable observable = Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("Hello");
subscriber.onNext("Hi");
subscriber.onNext("Aloha");
subscriber.onCompleted();
}
});

可以看到,这里传入了一个
OnSubscribe
对象作为参数。
OnSubscribe
会被存储在返回的
Observable
对象中,它的作用相当于一个计划表,当
Observable
被订阅的时候,
OnSubscribe

call()
方法会自动被调用,事件序列就会依照设定依次触发(对于上面的代码,就是观察者
Subscriber
将会被调用三次
onNext()
和一次
onCompleted()
)。这样,由被观察者调用了观察者的回调方法,就实现了由被观察者向观察者的事件传递,即观察者模式。

create()
方法是 RxJava 最基本的创造事件序列的方法。基于这个方法, RxJava 还提供了一些方法用来快捷创建事件队列,例如:

just(T...)
: 将传入的参数依次发送出来。
Observable observable = Observable.just("Hello", "Hi", "Aloha");
// 将会依次调用:
// onNext("Hello");
// onNext("Hi");
// onNext("Aloha");
// onCompleted();

from(T[])
/
from(Iterable<? extends T>)
: 将传入的数组或
Iterable
拆分成具体对象后,依次发送出来。
String[] words = {"Hello", "Hi", "Aloha"};Observable observable = Observable.from(words);
// 将会依次调用:
// onNext("Hello");
// onNext("Hi");
// onNext("Aloha");
// onCompleted();

上面
just(T...)
的例子和
from(T[])
的例子,都和之前的
create(OnSubscribe)
的例子是等价的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: