RxJava 1.x 理解-2
16lz
2021-01-22
给RxJava 加入线程控制 --Scheduler
在RxJava 1.x 理解-1中,我们说到了RxJava的简单用法,但是这还远远不够,因为这简单用法是在同一个线程中使用的。比如我们需要在子线程中进行耗时操作,在Android 主线程中进行UI操作,这样才不会导致卡顿的发生。
先上代码:
Observable .create(new Observable.OnSubscribe<String>() { @Override public void call(Subscriber<? super String> subscriber) { subscriber.onNext("提供数据01 获取线程id:" + Thread.currentThread().getId()); subscriber.onNext("提供数据02 获取线程id:" + Thread.currentThread().getId()); subscriber.onNext("提供数据03 获取线程id:" + Thread.currentThread().getId()); subscriber.onNext("提供数据04 获取线程id:" + Thread.currentThread().getId()); } }) .subscribeOn(Schedulers.io()) // 订阅发生在 // 指定 subscribe() 发生在 IO 线程 .observeOn(AndroidSchedulers.mainThread()) // 观察发生在 // 指定 Subscriber 的回调发生在主线程 .subscribe(new Action1<String>() { @Override public void call(String s) { Log.d(TAG, "Item: " + s + " 执行调用 获取线程id:" + Thread.currentThread().getId()); } });
更多相关文章
- jsoup 分页抓取网页数据Java HTML Parser
- javafx 和netty 混合使用出现线程不一致问题,求大神指点
- Java中的数据类型
- 在文件中添加新数据后,JComboBox不会刷新
- java中Date无法获取数据库时分秒的问题
- 怎么用java 实现两个web service之间调用各自的接口 实现数据的
- Java多线程之Thread、Runnable、Callable及线程池
- (翻译)Java使用POI中的SXSSF处理大数据量Excel文档
- 黑马程序员——Java学习笔记 String类和基本数据类型对象包装类