学习扔物线进阶视频课程笔记。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把任务放到主线程