RxJava 学习笔记

扔物线文章 《给 Android 开发者的 RxJava 详解》 的学习笔记。

RxJava 介绍

  • Github 地址:
    https://github.com/ReactiveX/RxJava
    https://github.com/ReactiveX/RxAndroid
    引入依赖:
    compile ‘io.reactivex:rxjava:x.y.z’
    compile ‘io.reactivex:rxandroid:x.y.z’

  • “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列组成异步的、基于事件的程序的库)

    • RxJava 的本质是异步,是一个实现异步操作的库。
  • RxJava 的优势是简洁,是指逻辑上的简洁,即随着程序逻辑变得越来越复杂,它依然能够保持简洁

  • RxJava 的异步实现,是通过一种扩展的观察者模式来实现的

  • Observable 被观察者

  • Subscribe 订阅者(同Observable)
  • Observer 观察者

线程控制–Scheduler

  • 在不指定线程的情况下,RxJava 遵循的是线程不变的原则,即:在哪个线程调用 subscribe(),就在哪个线程生产事件;在哪个线程生产事件,就在哪个线程消费事件。如过需要切换线程,就需要用到 Scheduler(调度器)

  • Schedulers.immediate(): 当前线程运行,默认的 Scheduler

  • Schedulers.newThread(): 总是启用新线程,并在新线程执行操作

  • Schedulers.io(): I/O 操作(读写文件、读写数据库、网络信息交互等)所使用的 Scheduler

  • Schedulers.computation(): 计算所使用的 Scheduler

  • AndroidSchedulers.mainThread(): Android 专用,指定的操作将在Android 主程序运行。

  • subscribeOn: 被观察者所发生的线程,比如网络请求,I/O 操作等

  • observeOn: 观察者所运行的线程

你可能感兴趣的:(Android随记)