RXJava角色划分:
observale: 被观察者
observer: 观察者 子类Subject【科目】
subscribe: 订阅
被观察者.订阅(观察者),被观察者通知观察者
被观察者类型:
热: 订阅完毕立即发送数据
冷: 创建以后,等待观察者订阅,
一旦订阅了,才发送数据
1. 添加依赖:
compile 'io.reactivex.rxjava2:rxjava:2.0.8'
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
2. 基础Api使用 订阅、取消订阅
public void showDemo(View view) {
//1. 创建被观察者
// 一旦订阅,调用观察者的 onSubscribe方法
Observable<String> observable=Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
// 调用 观察者的 onNext 方法
// 观察者 通知被 观察者 调用 onNext 方法
e.onNext("健身");
e.onNext("我要大保健");
e.onNext("去酒吧");
e.onComplete(); // 大保健完成
// e.onError(new Throwable("错误"));
}
});
// 2. 创建观察者
Observer<String> observer=new Observer<String>() {
Disposable dd;
@Override
public void onSubscribe(Disposable d) {
Log.e("denganzhi","onSubscribe");
dd= d;
}
@Override
public void onNext(String s) {
// 取消订阅
if(s.contains("大保健")){
dd.dispose();
}
Log.e("denganzhi1","onNext:"+s);
}
@Override
public void onError(Throwable e) {
Log.e("denganzhi","onError");
}
@Override
public void onComplete() {
Log.e("denganzhi","onComplete");
}
};
// 3. 订阅
observable.subscribe(observer);
}