RxJava学习(一)

来源:互联网 发布:淘宝第三方提供服务 编辑:程序博客网 时间:2024/06/07 21:55
为什么我的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");            }        });

0 0
原创粉丝点击