- Observer observer :表示一条数据流
- observer.subscribe(new Observer())//将数据流打印出来
Observable.create(new ObservableOnSubscribe()) //创建一个事件流
.map(...)//使用操作符将数据流进行变换
.subscribeOn(Schedulers.io())//订阅者的线程
.observeOn(AndroidSchedulers.mainThread())//观察者的线程
.subscribe(new Observer())//new Observer()是我们创建的一个观察者
区分
- 了解:
Schedulers.io():子线程 (io线程)
AndroidSchedulers.mainThread():主线程(main)
Schedulers.newThread():new 出来的子线程
- 事件产生 (生成一条流)
create() , just() , from() - 事件加工(将这条流加工)
map() , flapMap() , scan() , filter() - 事件消费(将流打印出来、输出)
subscribe()
作用线程
- 事件产生:默认运行在当前线程,可以由 subscribeOn() 自定义线程。
- 事件加工:默认跟事件产生的线程保持一致, 可以由 observeOn() 自定义线程。
- 事件消费:默认运行在当前线程,可以由observeOn() 自定义线程。
- 注意:
observeOn() 可以调用多次来切换线程,observeOn 决定他下面的方法执行时所在的线程。
subscribeOn() 用来确定数据发射所在的线程,位置放在哪里都可以,但它是只能调用一次的。
参考:https://www.cnblogs.com/zhaoyanjun/p/5624395.html