学习扔物线进阶视频课程笔记。RxJava3原理

RxJava3简单使用:

配合retrofit:
定义retrofit接口:
retofit初始化添加rxjava支持:
使用rxjava实现线程切换:

Disposable

可以通过dispose()方法来让上游或者内部调度器(或者两者都有)停止工作,达到丢弃任务的效果

subscribeOn

原理:在Scheduler指定的线程里启动subscribe()
效果:切换源数据的线程;当多次调用时,只有最上面的会起作用

observeOn

原理:在内部创建的Observer的onNext(),onError(),onSuccess()等回调方法里,通过Scheduler指定的线程来调用下级Observer的对应回调方法
效果:切换observeOn下面的Observer的回调所在线程;当多次调用时,每一个都会进行一次线程切换,影响范围是他的下面的每个Observer

线程切换影响效果图:

Scheduler

Schedulers.newThread()和Schedulers.io()
newThread每次都会新建一个Worker,worker新建一个Executor,由Executor来完成线程切换,io和newThread相比,会创建一个Worker缓存池,每次都是从缓存池里面获取worker,达到复用Executor的效果

AndroidSchedulers.mainThread()
通过内部的handler把任务放到主线程