在响应式编程中,最基本是一个观察者模式的框架,一般我们自定义有以下三部分:
- 自定义事件的发生
- 自定义处理(下一篇文章讲到)
- 自定义监听(观察者)
其中在整个过程中,我们可以指定事件发生和事件监听的代码执行的线程,具体使用 observeOn 和 subscribeOn 方法指定。如下实例:
线程调度实例:
Observable.create(
...
) // 事件发生
.observeOn(Schedulers.newThread()) // 指定事件发生的线程
.subscribeOn(Schedulers.io()) // 指定事件回调的线程
.subscribe(
...
);
observeOn 指定了事件发生的线程;subscribeOn指定了事件监听(回调)执行的线程。
在使用Rxjava进行网络请求时,一般请求的代码可以作为事件发生代码,请求完成后的响应回调就可以作为监听代码。结合以上代码,就是使用新的线程请求,请求完成后在io线程响应结果。例如,在Android开发时,对Activity的操作,只能在主线程进行,所以这里线程调度的设置就非常有必要。
线程调度的用法
observeOn 和 subscribeOn 方法都接收一个Scheduler。