RX操作符之Observable的创建方式一(just、from、repeat、repeatWhen)

创建发送指定值的Observerble,just只是简单的原样发射,将数组或Iterable当做单个数据。如果传递的值为null,则发送的Observable的值为null。参数最多为9个

[html]  view plain  copy
  1. Observable<String> myObservable = Observable.just("just1","just1","just1","just1","just1","just1","just1","just1","just1","just1");  
  2.   
  3.        Subscriber<String> mySubscriber = new Subscriber<String>() {  
  4.            @Override  
  5.            public void onNext(String s) {  
  6.                System.out.println(s);  
  7.            }  
  8.   
  9.            @Override  
  10.            public void onCompleted() {  
  11.                System.out.println("onCompleted.................");  
  12.            }  
  13.   
  14.            @Override  
  15.            public void onError(Throwable e) {  
  16.                System.out.println("onError....................");  
  17.            }  
  18.        };  
  19.   
  20.        myObservable.subscribe(mySubscriber);  

运行的结果:


二、from方法


将数据转换成为Observables,而不是需要混合使用Observables和其它类型的数据


 String [] items = {"just1","just1","just1","just1","just1","just1"};
    Observable<String> myObservable = Observable.fromArray(items);

    Subject <String> subject =  new Subject<String>() {
        @Override
        public boolean hasObservers() {
            return false;
        }
        @Override
        public boolean hasThrowable() {
            return false;
        }
        @Override
        public boolean hasComplete() {
            return false;
        }

        @Override
        public Throwable getThrowable() {
            return null;
        }

        @Override
        protected void subscribeActual(Observer<? super String> observer) {

        }

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onNext(String value) {
            System.out.println("onCompleted................."+value);
        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onComplete() {

        }
    };

    myObservable.subscribe(subject);

}
09-05 15:05:05.459 9427-9427System.out: onCompleted.................just1
09-05 15:05:05.459 9427-9427System.out: onCompleted.................just1
09-05 15:05:05.459 9427-9427/System.out: onCompleted.................just1
09-05 15:05:05.459 9427-9427System.out: onCompleted.................just1
09-05 15:05:05.459 9427-9427System.out: onCompleted.................just1
09-05 15:05:05.459 9427-9427System.out: onCompleted.................just1

三、repeat方法


1.repeat()重复地执行某个操作,如果不传递参数,结果将会被无限地重复执行,默认在trampoline调度器上执行,该方法为非静态方法,不可以直接通过Observable来调用



    String [] items = {"just1","just1","just1","just1","just1","just1"};
    Observable<String> myObservable = Observable.fromArray(items).repeat();;

    Subject <String> subject =  new Subject<String>() {
        @Override
        public boolean hasObservers() {
            return false;
        }
        @Override
        public boolean hasThrowable() {
            return false;
        }
        @Override
        public boolean hasComplete() {
            return false;
        }

        @Override
        public Throwable getThrowable() {
            return null;
        }

        @Override
        protected void subscribeActual(Observer<? super String> observer) {

        }

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onNext(String value) {
            System.out.println("onCompleted................."+value);
        }

        @Override
        public void onError(Throwable e) {

        }

        @Override
        public void onComplete() {

        }
    };

    myObservable.subscribe(subject);

}


  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值