RxJava原理学习

前言

本文为个人学习RxJava框架时所作,参考了两篇大佬的文章,在文末给出了链接。我只是在这里做一个两方面的整合,方便个人学习。

总结

RxJava是一个响应式编程框架,可以非常方便的实现线程调度以及数据转换,规范代码,并且其用到了观察者模式和装饰者模式。与Retrofit框架配合较多。

1.RxJava是什么?

响应式编程框架,响应式编程是一种通过异步和数据流来构建事务关系的编程模型。能够由事件来驱动事务
RxJava利用响应式编程的优点,可以实现
①可以通过一系列链式调用,规范代码
②能够通过subscribeOnobserveOn两个方法实现线程切换,通过Map,FlatMap等操作符实现中间事件的转换。
③与Retrofit框架配合使用较多

2.RxJava的线程调度

线程调度只有subscribeOn()observeOn()两个方法。
subscribeOn()它指示Observable在一个指定的调度器上创建(只作用于被观察者创建阶段)。只能指定一次,如果指定多次则以第一次为准
observeOn()指定在事件传递(加工变换)和最终被处理(观察者)的发生在哪一个调度器。可指定多次,每次指定完都在下一步生效。

RxJava的线程环境有哪些选项:
在这里插入图片描述

3.RxJava的操作符

常用的是Map和FlatMap。

①关于Map的使用例子
  Observable.just(getFilePath())
            //使用map操作来完成类型转换
            .map(new Func1<String, Bitmap>() {
   
              @Override
              public Bitmap call(String s) {
   
                //显然自定义的createBitmapFromPath(s)方法,是一个极其耗时的操作
                  return createBitmapFromPath(s);
              }
          })
          .subscribe(
               //创建观察者,作为事件传递的终点处理事件    
                new Subscriber<Bitmap>() {
   
                      @Override
                      public void onCompleted() {
   
                          Log.d("DDDDDD","结束观察...\n");
                      }

                      @Override
                      public void onError(Throwable e) {
   
                          //出现错误会调用这个方法
                      }
                      @Override
                      public void onNext(Bitmap s) {
   
            
  • 4
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值