给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());
                    }
                });

更多相关文章

  1. jsoup 分页抓取网页数据Java HTML Parser
  2. javafx 和netty 混合使用出现线程不一致问题,求大神指点
  3. Java中的数据类型
  4. 在文件中添加新数据后,JComboBox不会刷新
  5. java中Date无法获取数据库时分秒的问题
  6. 怎么用java 实现两个web service之间调用各自的接口 实现数据的
  7. Java多线程之Thread、Runnable、Callable及线程池
  8. (翻译)Java使用POI中的SXSSF处理大数据量Excel文档
  9. 黑马程序员——Java学习笔记 String类和基本数据类型对象包装类

随机推荐

  1. android中Textview如何限制在一行显示且
  2. android Material
  3. 引用 Android的DTMF处理(ToneGenerator)
  4. Android Bundle类(简单实例)
  5. Android上使用Chrome DevTools 远程调试W
  6. Android SystemProperty
  7. Android adb shell 常用命令
  8. Android(安卓)Camera——拍照
  9. Android根据经纬度获取地址
  10. 向Android模拟器发短信打电话