RX是一个响应式的编程,提供了一系列的操作符,你可以使用它们来过滤(filter)、选择(select)、变换(transform)、结合(combine)和组合(compose)多个Observable,这些操作符让执行和复合变得非常高效。主要是通过观察者Observer订阅subscribe可观察对象Observable实现的。
步骤一:
创建一个观察者
注:
1.并复写其中的三个回调方法。其中onNext()相当于Thread中的run()方法,只不过现在默认的是运行在主线程,实际代码中可以控制所需运行的线程。onCompleted()方法在运行完成后调用,onError()在运行出错时调用。这三个方法都是需要手动调用的,如果不设置运行的线程,默认都是运行在主线程。
2.泛型类型为onNext()中的参数类型,即为被观察者中所传入的参数类型
Subscriber<String> mySubscriber = new Subscriber<String>() {
@Override
public void onNext(String s) {
System.out.println(s);
}
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
}
};
步骤二:
创建一个被观察者,泛型为运行结果所需返回的参数类型,并在call()方法中调用所需要的方法,默认也是运行在主线程
Observable<String> myObservable = Observable.create(
new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> sub) {
sub.onNext("simple rx demo!");
sub.onCompleted();
}
}
);
三、通过订阅调用call方法,并回调call中所调用的方法
myObservable.subscribe(mySubscriber);
运行结果:
simple rx demo!
参考资料:https://mcxiaoke.gitbooks.io/rxdocs/content/operators/Materialize.html