本文是参照吴小龙同学的博客写的RxJava练习
RxJava的世界里,我们有四种角色:
Observable(被观察者)、Observer(观察者)
Subscriber(订阅者)、Subject
Observable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。Observable 和 Observer 通过 subscribe() 方法实现订阅关系,从而 Observable 可以在需要的时候发出事件来通知 Observer。
添加RxJava依赖:
//RxJava异步的扩展观察者模式
compile 'io.reactivex:rxjava:1.1.3'
compile 'io.reactivex:rxandroid:1.1.0'
创建操作
creat
rx.Observable.create(new rx.Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
subscriber.onNext("Hello");
subscriber.onNext("RxJava");
subscriber.onCompleted();
}
}).subscribe(new Observer<String>() {
@Override
public void onCompleted() {
Log.d("msg", "onCompleted");
}
@Override
public void onError(Throwable e) {
Log.d("msg", "onError=" + e);
}
@Override
public void onNext(String s) {
Log.d("msg", "onNext=" + s);
}
});
just
按参数列表顺序发射数据
rx.Observable.just("I","love","you").subscribe(new Observer<String>() {
@Override
public void onCompleted() {
Log.d("msg", "onCompleted");
}
@Override
public void onError(Throwable e) {
Log.d("msg", "onError=" + e);
}
@Override
public void onNext(String s) {
Log.d("msg", "onNext=" + s);
}
});
from
接收数组,按数组列表顺序发射数据。
String[] sendMsg={"you","are","beautiful"};
rx.Observable.from(sendMsg).subscribe(new Observer<String>() {
@Override
public void onCompleted() {
Log.d("msg", "onCompleted");
}
@Override
public void onError(Throwable e) {
Log.d("msg", "onError=" + e);
}
@Override
public void onNext(String s) {
Log.d("msg", "onNext=" + s);
}
});