Rxjava用法

1、RxJava基本概念:
Observable(可观察者,被观察者)、Observer(Subscriber)(观察者)、subscribe(订阅)。Observable和Observer通过subscribe相关联。

2、创建Observer(subscriber)即观察者

Observer<String> observer = new Observer<String>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(String s) {

            }
        };

        Subscriber<String> subscriber = new Subscriber<String>() {
            @Override
            public void onCompleted() {

            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onNext(String s) {

            }
        };

3、创建(Observable)被观察者:
(1)使用create方法创建:

Observable<String> observable = Observable.create(new Observable.OnSubscribe<String>() {
            @Override
            public void call(Subscriber<? super String> subscriber) {
                subscriber.onNext("Hello RxJava");
                subscriber.onCompleted();
            }
        });

(2)使用just(T….)方法将参数依次发送出来:

Observable<String> observable1 = Observable.just("hello","rxjava");

(3) 使用from(T[]),from(Iterable

String[] strs = {"Hello","Rxjava"};
        Observable<String> observable2 = Observable.from(strs);

4、订阅

observable.subscribe(subscriber);

Observable可以只订阅onNext,onError,onComplete事件

Action1<String> onNext = new Action1<String>() {
            @Override
            public void call(String s) {

            }
        };

        Action1<Throwable> onError = new Action1<Throwable>() {
            @Override
            public void call(Throwable throwable) {

            }
        };

        Action0 onComplete = new Action0() {
            @Override
            public void call() {

            }
        };
        observable.subscribe(onNext);
        observable.subscribe(onNext,onError);
        observable.subscribe(onNext,onError,onComplete);

5、线程控制:
Schedulers.immediate(): 直接在当前线程运行,相当于不指定线程。这是默认的 Scheduler。
Schedulers.newThread(): 总是启用新线程,并在新线程执行操作。
Schedulers.io(): I/O 操作(读写文件、读写数据库、网络信息交互等)所使用的 Scheduler。
Schedulers.computation(): 计算所使用的 Scheduler。
Android 还有一个专用的 AndroidSchedulers.mainThread(),它指定的操作将在 Android 主线程运行。
举个栗子:

 Observable.just(1,2,3)
                .subscribeOn(Schedulers.io())
                .observeOn(AndroidSchedulers.mainThread())
                .subscribe(new Action1<Integer>() {
                    @Override
                    public void call(Integer integer) {
                        Log.d("num",integer.toString());
                    }
                });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值