RxJava之创建操作符

上游为Obsevable,为被观察者,Observer 为观察者
这些操作符主要是
1,创建型操作符:Create()

Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> emitter) throws Exception {
                emitter.onNext("a");
            }
        }).subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
            }
            @Override
            public void onNext(String s) {
                Log.d("MainActivity","onNext:"+s);
            }
            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });

2,Just的操作符的使用(内部发射单一对象)
//上游 TODO 先发送"A" 再发送“B”

  Observable.just("A","B").subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                
            }

            @Override
            public void onNext(String s) {
                Log.d("MainActivity","onNext:"+s);
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });

3,forArray的操作符的使用

 String [] str={"1","2","3"};
        Observable.fromArray(str).subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                
            }

            @Override
            public void onNext(String s) {                
                Log.d("MainActivity","onNext:"+s);
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });

简写的使用:

  Observable.fromArray(str).subscribe(new Consumer<String>() {
            @Override
            public void accept(String s) throws Exception {
                Log.d("MainActivity","onNext:"+s);
            }
        });

4,empty的使用(做耗时操作,不需要任务数据刷新UI)
注:下游只能是Object对象
//TODO 上游没有发射任务有值的时间,下游无法确定类型,默认Object

  Observable.empty()//内部一定会调用onComplete方法完毕事件
                //订阅
                .subscribe(new Observer<Object>() {
            @Override
            public void onSubscribe(Disposable d) {

            }

            @Override
            public void onNext(Object o) {
                //没有事件可接受
            }

            @Override
            public void onError(Throwable e) {

            }

            @Override
            public void onComplete() {

            }
        });
        //new Consumer里面也是接收不到事件的

5,range操作符的使用
//打印从1,累加到8
// 第一个参数是起始值,第二参数是加的范围

Observable.range(1,8).subscribe(new Consumer<Integer>() {
            @Override
            public void accept(Integer integer) throws Exception {
                
            }
        });
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值