补充知识点:Rx 即 Reactive Extensions,因此 RxJava 是为 java 扩展的响应式编程库,使数据可以异步地运用
1、线程类型
- Schedulers.io:常用,读写文件/数据库/网络请求
- Schedulers.newThread:耗时操作
- Schedulers.computation:CUP密集计算,图片压缩/数据格式解析
- Schedulers.trampoline:当前线程
- AndroidSchedulers.mainThread:主线程,更新UI
2、例子
Single.just(777)
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(getSingleObserver(tag));
3、流程
1、just(777) ,声明数据处理器
class SingleJust<T>(private val value: T) : Single<T>() {
override fun subscribeActual(observer: SingleObserver<in T>) {
observer.onSubscribe(Disposable.disposed())
observer.onSuccess(value)
}
}
2、subscribeOn、observeOn,声明处理的观察者
class SingleSubscribeOn<T>(
pr