安卓-第三方组件收集
要点:如果不是必须, 用系统控件
RxJava
线程切换需要注意的地方
RxJava 内置的线程调度器的确可以让我们的线程切换得心应手,但其中也有些需要注意的地方。
- 简单地说,
subscribeOn()
指定的就是发射事件的线程,observerOn()
指定的就是订阅者接收事件的线程。 - 多次指定发射事件的线程只有第一次指定的有效,也就是说多次调用
subscribeOn()
只有第一次的有效,其余的会被忽略。 - 但多次指定订阅者接收线程是可以的,也就是说每调用一次
observerOn()
,下游的线程就会切换一次。
RxJava 中,已经内置了很多线程选项供我们选择,例如有:
-
Schedulers.io()
代表io操作的线程, 通常用于网络,读写文件等 IO 密集型的操作; -
Schedulers.computation()
代表CPU计算密集型的操作, 例如需要大量计算的操作; -
Schedulers.newThread()
代表一个常规的新线程;