Rxjava android 心得

最近工作上用到了rxJava ,简要做下笔记,以备后期温故。

1. 2018年3月份 rxJava 1.x版本 滚蛋了,官方也要放弃这个孩子。rxJava2.x版本做了一些改动,可以了解下背压

2. 这个东西是个事件流驱动的异步东东

3.用起来比较简单:撸码

 Observable.create(new Observable.just(getFilePath())
           //指定了被观察者执行的线程环境
          .subscribeOn(Schedulers.newThread())
          //将接下来执行的线程环境指定为io线程
          .observeOn(Schedulers.io())
            //使用map操作来完成类型转换
            .map(new Func1<String, Bitmap>() {
              @Override
              public Bitmap call(String s) {
                //显然自定义的createBitmapFromPath(s)方法,是一个极其耗时的操作
                  return createBitmapFromPath(s);
              }
          })
            //将后面执行的线程环境切换为主线程
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(
                 //创建观察者,作为事件传递的终点处理事件    
                  new Subscriber<Bitmap>() {
                        @Override
                        public void onCompleted() {
                            Log.d("iven","结束观察...\n");
                        }

                        @Override
                        public void onError(Throwable e) {
                            //出现错误会调用这个方法
                        }
                        @Override
                        public void onNext(Bitmap s) {
                            //处理事件
                            showBitmap(s)
                        }
                    );

说说啥意思,这个是基于1.x 版本的,其中map 是用来加工的,subscribeOn 用来指定被观察者执行的线程,observeOn 用来指定观察者所在的线程,其中subscribeOn 只能指定一次,如果多次指定的话就以第一次的指定为准,observeOn 可以多次指定,每次指定完成之后他的作用域会指定在下一次的应用。

4.目前项目用的是1.x 后期升级之后再来撸2.x的源码

猜你喜欢

转载自blog.csdn.net/dongheli/article/details/81083090