RXJAVA之概述
RXjava是一个异步和基于事件的程序库。RXjava的核心理念是编程风格的的变化,从传统的命令式程序改变到函数响应式编程。
RXjava的基本概念:
Observable:发射源,即对象产生的地方。
Observer:观察者,即订阅发射源并处理接收数据的地方。
Subject:比较特殊的对象,它自己即是发射源,又是接收源。
Subscriber:订阅者,比观察者对了一个unsubscribe方法,用来取消订阅。
Subscription:Observable调用subscribe方法返回的对象,有unsubscribe方法,可以用来取消订阅时间。
Action0:无返回值的回调函数。
Func0:有返回值的回调函数。
RXjava入门:
1.引入rxjava 包
<dependency>
<groupId>io.reactivex.rxjava2</groupId>
<artifactId>rxjava</artifactId>
<version>2.1.3</version>
</dependency>
2.创建事件源(Observable)
Observable<String> observable = Observable.create(new ObservableOnSubscribe<String>(){
@Override
public void subscribe(ObservableEmitter<String> arg0) throws Exception {
arg0.onNext("123");
arg0.onComplete();
}});
这里传入了一个ObservableOnSubscribe对象,当事件源被订阅时,subscribe方法会被调用,数据就会依次被调用。
3.创建观察者(Observer)
observable.subscribeWith(new Observer<String>(){
@Override
public void onComplete() {
System.out.println("complete");
}
@Override
public void onError(Throwable arg0) {
System.out.println("error");
}
@Override
public void onNext(String arg0) {
System.out.println(arg0);
}
@Override
public void onSubscribe(Disposable arg0) {
System.out.println("onSubscribe");
}
});
4.运行后输出结果:
onSubscribe
123
complete