为什么我的onCompleted() 和OnNext()不调用。
Observable.create(new Observable.OnSubscribe<String>() {
@Override
public void call(Subscriber<? super String> subscriber) {
//这里一定要注意 call()方式要手动调用,onNext() ononCompleted()
// 否则Subscriber中不会调用相应的方法
subscriber.onNext("onNext");
subscriber.onCompleted();
}
}).subscribe(new Subscriber<String>() {
@Override
public void onCompleted() {
LogUtil.d("#########--create--onCompleted");
}
@Override
public void onError(Throwable e) {
//该方法相当于try-catch 只要有异常就会捕捉到,停止当前任务,调用该方法
LogUtil.d("#########--create--onError");
}
@Override
public void onNext(String s) {
LogUtil.d("#########-create---onNext");
}
});
//与create不同的是 just等方法是在create方法上进行封装而来的,内部已经调用了onNext() 和onComplated()方法
Observable.just(1, 2, 3, 4)
.subscribeOn(Schedulers.io()) // 指定 subscribe() 发生在 IO 线程
.observeOn(AndroidSchedulers.mainThread()) // 指定 Subscriber 的回调发生在主线程
.subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
LogUtil.d("#########-just---onCompleted");
}
@Override
public void onError(Throwable e) {
LogUtil.d("#########--just--onError");
}
@Override
public void onNext(Integer integer) {
LogUtil.d("#########--just--onNext");
}
});