一、实现观察者和被观察者的创建和建立联系
第一种方式实现观察者和被观察者的创建和建立联系
1、创建被观察者
// 创建被观察者(发送数据)
Observable observable = Observable.create(new ObservableOnSubscribe<String>() {
@Override
public void subscribe(ObservableEmitter<String> e) throws Exception {
e.onNext("大保健");
e.onNext("泡吧");
e.onComplete();
}
});
2、创建观察者
// 创建观察者(接受数据)
io.reactivex.Observer<String> observer = new io.reactivex.Observer<String>() {
@Override
public void onSubscribe(Disposable d) {
//移除观察者和被观察者的订阅关系
// d.dispose();
//判断观察者和被观察者是否还存在订阅关系
// d.isDisposed();
Log.i("myTag","onSubscribe-->" );
}
@Override
public void onNext(String value) {
Log.i("myTag","observer-->" + value);
}
@Override
public void onError(Throwable e) {
Log.i("myTag","onError-->" );
}
@Override
public void onComplete() {
Log.i("myTag","onComplete-->" );
}
};
3、实现观察者和被观察者之间的订阅关系
observable.subscribe(observer);
第二种方式实现观察者和被观察者的创建和建立联系
// 创建被观察者(发送数据)
Observable<String> observable.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
//accept方法就相当于是onnext方法
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
}, new Action() {
@Override
public void run() throws Exception {
}
});
创建观察者和实现观察者、被观察者之间的关系步骤同第一种
第三种方式实现观察者和被观察者的创建和建立联系
// 创建被观察者(发送数据)
Observable<String> observable.subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
//accept方法就相当于是onnext方法
}
}, new Consumer<Throwable>() {
@Override
public void accept(Throwable throwable) throws Exception {
}
}, new Action() {
@Override
public void run() throws Exception {
}
});
创建观察者和实现观察者、被观察者之间的关系步骤同第一种
第四种方式实现观察者和被观察者的创建和建立联系
Observable observable = Observable.just("大保健","泡吧","ddd");
创建观察者和实现观察者、被观察者之间的关系步骤同第一种
第五种方式实现观察者和被观察者的创建和建立联系
Observable observable = Observable.fromArray("大保健","泡吧","ddd");
创建观察者和实现观察者、被观察者之间的关系步骤同第一种
第六种方式实现观察者和被观察者的创建和建立联系
Observable observable = Observable.fromCallable(new Callable<String>() {
@Override
public String call() throws Exception {
return "大保健";
}
});
创建观察者和实现观察者、被观察者之间的关系步骤同第一种