Android网络框架

Android框架第(三)篇--响应式编程

2017-11-05  本文已影响39人  ZebraWei

版权声明:本文为小斑马伟原创文章,转载请注明出处!

RxJava响应式编程

上篇简单的阐述了响应式编程的基本理论。这篇主要对响应编程进行详细的介绍。以及主要介绍响应编程的主要实现-RxJava。其中RxJava的操作符和调度器(Scheduler)主要介绍对象。

一、什么是响应式编程?

响应式编程:是一种基于异步数据流概念的编程模式。关键概念:事件 把现实中的事件, 搬到软件中区去, 事件过程等待 触发到另一种事件。响应式编程最通用的一个场景是UI:我们的移动App必须做出对网络调用、用户触摸输入和系统弹框的响应。RxJava是响应式编程的具体实现,是异步数据处理库 扩展的观察者模式。

二、扩展观察者模式

扩展的观察者模式:有四个基本的要素:Observable (被观察者)、 Observer (观察者)、 subscribe (订阅)、event(事件)。Observable (被观察者)和 Observer (观察者)通过 subscribe() 方法实现订阅关系,Observable就可以在需要的时候通知Observer。其中onCompleted、onError、onNext是必须要实现的方法,他们的含义分别是:

三、基本概念

RxJava的四个基本角色:Observable、Observer、Subscriber、Subject。Observable和Subject是两个“生产”实体,Observer和Subscriber是两个“消费”实体。RxJava本质上是Rx是一个函数库,让开发者可以利用可观察序列和LINQ风格查询操作符来编写异步和基于事件的程序,开发者可以用Observables表示异步数据流,用LINQ操作符查询异步数据流, 用Schedulers参数化异步数据流的并发处理,Rx可以这样定义:Rx = Observables + LINQ + Schedulers。

四、RxJava操作符的分类
操作符的分类
1.Creating ObServables(创建Observable)
2.Transforming Observables(转换Observabl)
3.Filtering Observables(过滤Observable)
4.Combing Observables(组合Observable)
5.Error Handling Operators(处理错误)
4.1Creating ObServables(创建Observable)
Create Just From
Defer Empty/Never/Throw Interval
Range Repeat Start
Timer *** ***
private static void from() {  //创建一个数组和列表转换成其他数据类型的对象 和数据类型
     ArrayList<Integer> items = new ArrayList<Integer>();
     items.add(1);
     items.add(2);
     items.add(3);
     items.add(5);
     items.add(6);
     items.add(7);
     Observable.from(items).subscribe(new Subscriber<Integer>(){

       @Override
       public void onCompleted() {
          System.out.println("onCompleted()");
            
      }

      @Override
      public void onError(Throwable arg0) {
          // TODO Auto-generated method stub
            
      }

      @Override
      public void onNext(Integer arg0) {
          System.out.println("onNext():"+arg0);
            
      }     
    });
}
4.2Transforming Observables(转换Observable)
4.3Filtering Observables(过滤Observable)
4.3Combing Observables(组合Observable)
4.4 Error Handling Operators(处理错误)

Catch:捕获异常处理
**onErrorReturn: **遇见异常正常结束数据流
onErrorResumeNext:当数据遇见异常,用正常数据代替错误数据项 不可以捕获到异常信息
onExceptionResumeNext:当有异常的时候,可以用正确的数据流替换掉,并且和、可以捕获到异常信息

五、Schedulers(调度器)种类

调度器(Scheduler)是RxJava以一种极其简单的方式解决多线程问题机制。
Schedulers(调度器)种类:
.io() I/O操作
.computation()计算 计算类型
.immediate() 这个调度器允许你立即在当前线程执行你指定的工作
.newThread() 建立一个新的线程 它为指定任务启动一个新的线程
.trampoline() 按照顺序排队处理的 调度器将会按序处理队列,并运行队列中每一个任务

上一篇 下一篇

猜你喜欢

热点阅读