rxjava用法(持续更新...)

###rxjava的语法
1.线程切换
subscribeOn:指定被观察者的执行线程,也就是Observable
observerOn:指定观察者执行的线程,也就是Subscriber
关于Scheduler,rxjava为我们提供了以下几个Scheduler
1).Schedulers.immediate():直接在当前线程运行,相当于不指定线程。这是默认的Scheduler
2).Schedulers.newThread():总是启用新线程,并在新线程中执行操作
3).Schedulers.io():I/O操作(读写文件,读写数据库,网络信息交互等)。行为模式和newThread
差不多,区别在于io()内部实现是用一个无数量上线的线程池,可以重用空闲的线程,因此多数
情况下io()比newThread更有效率。不要把计算工作放到io()中,可以避免创建不必要的线程
4).Schedulers.computation():计算所使用的Scheduler。这个计算指的是CPU密集型计算,即不会
被I/O等操作限制性能的操作,例如图形的计算。这个Scheduler是使用固定的线程池,大小为
cpu核数。不要把IO操作放在computation中,否则IO操作的等待时间会浪费cpu.
5).AndroidSchedulers.mainThread():它指定的操作将在Android主线程中操作。
(参考)https://www.jianshu.com/p/ecfb9d68d2a2


2.map和flatMap操作符的区别
1).map:当我们想要一个返回对象里面的集合的时候,就可以使用map操作符,通过map操作符可以将
对象里面的集合获取到返回出去
2).flatMap:当我们在Subscriber中要打印一个集合里面的某个值得时候,一般做法是用for循环,但
是现在就可以使用flatmap代替,flatmap可以将每一个集合里面的对象返回到Subscriber里。
(参考)https://www.jianshu.com/p/52cd2d514528


3.Func1和Action1的区别
1).Func1有返回值,Action没有返回值。


4.timer/interval/delay的区别
案例

end
Thanks
可能是东半球最全的RxJava使用场景小结

你可能感兴趣的:(android框架使用)