Rxjava解析

来源:互联网 发布:linux 编译打包war 编辑:程序博客网 时间:2024/04/27 22:33

2016年10月17日更新:
RxJava实战技巧大全

2016年8月16日更新:
rxjava操作符

android Rxjava学习笔记

以下两篇是实践运用篇,看完这两篇就够了:

给 Android 开发者的 RxJava 详解

RxJava 与 Retrofit 结合的最佳实践

配合使用的插件:Rxlifecycle,RxBinding
Rxlifecycle使用详解,解决RxJava内存泄露问题
详细解析 RxAndroid 的使用方式

以下是基础篇:

Rxjava的api文档

ReactiveX的中文文档

RxJava tips

Rxjava的api文档和ReactiveX的中文文档包含了Rxjava的所有用法和文档解释,非常有用。

1。要想看懂理清响应式编程的核心,必须理解以下三个概念的区别。
Observable, Observer, Subscriber


  • Observable 可观察对象,被观察的数据源对象,在Rx中定义为更强大的Iterable,在观察者模式中是被观察的对象,一旦数据产生或发生变化,会通过某种方式通知观察者或订阅者

  • Observer 观察者对象,观察监听Observable变化的对象,监听Observable发射的数据并做出响应,Subscriber是它的一个特殊实现

  • Subscriber 订阅者,Observer观察者的一个特殊实现,比Observer附加了订阅和取消订阅的动作功能,文档上如下描述,


public abstract class Subscriber
extends java.lang.Object
implements Observer, Subscription
Provides a mechanism for receiving push-based notifications from Observables, and permits manual unsubscribing from these Observables.
After a Subscriber calls an Observable’s subscribe method, the Observable calls the Subscriber’s Observer.onNext(T) method to emit items. A well-behaved Observable will call a Subscriber’s Observer.onCompleted() method exactly once or the Subscriber’s Observer.onError(java.lang.Throwable) method exactly once.

它继承了Observer和Subscription两个接口,我们来看这两个接口的代码,

public interface Observer<T> {    void onCompleted();    void onError(Throwable e);    void onNext(T t);//接收Observable发射的数据}
public interface Subscription {    void unsubscribe();//取消订阅    boolean isUnsubscribed();//是否订阅}

2。 Suscribe
了解了主要的生产者和消费者(即被观察者/广播者和观察者/订阅者),我们再来看讲他们绑定在一起的操作符Suscribe.

Subscribe详细介绍

Subscribe操作符是连接观察者和Observable的胶水。一个观察者要想看到Observable发射的数据项,或者想要从Observable获取错误和完成通知,它首先必须使用这个操作符订阅那个Observable,将它们绑定在一起。

Subscribe操作符的一般实现可能会接受一到三个方法(然后由观察者组合它们),或者接受一个实现了包含这三个方法的接口的对象(有时叫做Observer或Subscriber),这三个方法即:

    void onCompleted();    void onError(Throwable e);    void onNext(T t);

3。Observable的创建
Observable的create:将Observer或Subcriber的三个方法进行组织,其他just,from等操作符都是create创建的对三个方法的不同组织。

0 0
原创粉丝点击