美文网首页
Rxjava练习册(一)

Rxjava练习册(一)

作者: 谈小龙 | 来源:发表于2016-01-23 16:32 被阅读158次

    准备工作 http://www.jianshu.com/p/1ac62d93b962

    Observer的创建

    static Observer<Integer> observer = new Observer<Integer>() {
        @Override
        public void onCompleted() {
            System.out.println("onCompleted");
        }
        @Override 
       public void onError(Throwable e) {
            System.out.println("onError");
        } 
       @Override
        public void onNext(Integer integer) {
            System.out.println(integer);
    }};
    

    Observable的创建

    Observable.create(), Observable.just(),Observable.from();
    create方法需要一个Observable.OnSubscribe对象
    just方法是将一个(或多个,最多9个)普通对象转换成一个Observable对象
    from方法是将一个列表转换成一个Observable对象
    用代码说话吧

    create:
    static Observable.OnSubscribe<Integer> onsubscribe = new Observable.OnSubscribe<Integer>() {
        @Override
        public void call(Subscriber<? super Integer> subscriber) {
            subscriber.onNext(1);
            subscriber.onError(new Exception());
            subscriber.onCompleted();
            subscriber.onError(new Exception());
            subscriber.onNext(2);
    }};
    
    • onCompleted和onError方法不会同时被调用,两者都会结束链式调用
    • onCompleted或onError方法之后的方法将不会被调用
      测试:
      static void create(){
      Observable.create(onSubscribe).subscribe(integerObserver);
      }
      public static void main(String args[]) {
      create();
      }


      屏幕快照 2016-01-23 下午4.01.10.png
    just:

    just方法最多可以接受10个参数
    static void just(){
    Observable.just(1).subscribe(integerObserver);
    }
    static void just2(){
    Observable.just(1,2).subscribe(integerObserver);
    }

    • 如果是不同的类型just就会自动向上转型,转型失败将不能通过编译
    屏幕快照 2016-01-23 下午4.21.32.png
    from:

    from是将一集合(from还有其它的创建方法,这里我只练习集合)转化成一个Observable

      static void from(){
          Integer arr[] = {1,2,3,4 };
          Observable.from(arr).subscribe(integerObserver);
      }
      static void from2(){
          Integer arr[] = {1,2,3,4 };
          Observable.from(Arrays.asList(arr)).subscribe(integerObserver);
      }
    
    屏幕快照 2016-01-23 下午4.30.38.png

    相关文章

      网友评论

          本文标题:Rxjava练习册(一)

          本文链接:https://www.haomeiwen.com/subject/rsjrkttx.html