Android RxAndroid使用

实现类似定时器功能

  1. 依赖
compile 'io.reactivex.rxjava2:rxandroid:2.0.1'
compile 'io.reactivex.rxjava2:rxjava:2.1.3'

2.布局文件中只是简单的TextView控件来显示文本。目前涉及到及所了解的RxAndroid与RxJava中多用到的是 .observeOn(AndroidSchedulers.mainThread()),通知主线程这一块,其它不同还未涉及到。RxAndroid在使用时使用RxJava(Java RxJava学习使用)中的方法,


  @Override protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final TextView textView = (TextView) findViewById(R.id.textView);
    Observable
        .just("one", "two", "three", "four", "five")// 数据源
        .map(new Function<String, String>() {
          @Override public String apply(@NonNull String s) throws Exception {
            Log.e("TAG",Thread.currentThread().getName()); // 打印io线程名
            Thread.sleep(1000); // 线程睡眠1秒钟
            return s;
          }
        })
        .subscribeOn(Schedulers.io()) // 将以上代码订阅在io线程
        .observeOn(AndroidSchedulers.mainThread()) // 通知主线程
        .subscribe(new Consumer<String>() { // 主线程订阅
          @Override public void accept(String s) throws Exception {
            Log.e("TAG",Thread.currentThread().getName()); // 打印当前线程名
            textView.setText(s);
          }
        });
  }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容