摘要:本文目标本文的目标是使用尽可能少的内容向你展示如何在中使用编写一个最简单的异步任务。如果你是初学者可以通过本文以最快的速度开启你的之旅。相反的我希望本文的作用更加类似于一个快速上手的手册。新人可以快速上手,老手也可以快速参考。
本文目标
本文的目标是使用尽可能少的内容向你展示如何在Android中使用Rxjava编写一个最简单的异步任务。如果你是初学者可以通过本文以最快的速度开启你的Rxjava之旅。如果你已经接触过了Rxjava可以将本文作为一篇随时取用的手册使用。
开发环境AndroidStudio 2.1.2
CompileSdkVersion 23
BuildToolsVersion 23.0.2
Rxjava 1.1.7
Rxandroid 1.2.1
依赖引用compile "io.reactivex:rxjava:1.1.7" compile "io.reactivex:rxandroid:1.2.1"如何使用
/** * 这是rxjava执行一个异步任务的基础架子 */ Observable.create(new Observable.OnSubscribe举个栗子
/** * 在这个栗子中将展示使用rxjava执行一个最简单的异步任务 * 栗子将会完成如下工作 * 1. 在任务执行前显示进度条 * 2. 线程休眠1秒,模拟异步任务的执行,然后返回一段字符串作为执行结果 * 3. 关闭进度条,处理异步任务的执行结果 */ private void executeAsyncTask() { //Observable#create方法创建一个异步任务 Observable.create(new Observable.OnSubscribe关于本文() { @Override public void call(Subscriber super String> subscriber) { //在call方法中执行异步任务 try { Thread.sleep(1000); } catch (InterruptedException e) { //注意:如果异步任务中需要抛出异常,在执行结果中处理异常。需要将异常转化未RuntimException throw new RuntimeException(e); } count++; //调用subscriber#onNext方法将执行结果返回 subscriber.onNext("成功执行异步任务" + count + "次"); //调用subscriber#onCompleted方法完成异步任务 subscriber.onCompleted(); } }) .subscribeOn(Schedulers.io())//指定异步任务在IO线程运行 .observeOn(AndroidSchedulers.mainThread())//制定执行结果在主线程运行 .subscribe(new Subscriber () { ProgressDialog progressDialog; @Override public void onStart() { //在异步任务执行前打开进度条 super.onStart(); Log.i(TAG, "onStart"); if (progressDialog == null) progressDialog = ProgressDialog.show(MainActivity.this, "", "正在执行异步任务"); } @Override public void onCompleted() { //在异步任务执行完成后关闭进度条 Log.i(TAG, "onCompleted"); if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } } @Override public void onError(Throwable e) { //如果异步任务执行失败则关闭进度条,并打印错误日志 if (progressDialog != null) { progressDialog.dismiss(); progressDialog = null; } Log.e(TAG, "onError: execute async task fail", e); } @Override public void onNext(String s) { //处理异步任务的执行结果 Log.i(TAG, "onNext"); tvContent.setText(s); } }); }
目前网上有很多关于rxjava不错的文章,在后面完也会附上地址。但是本文的目的不是详细的介绍rxjava的各种特性、最佳实践、实现原理。相反的我希望本文的作用更加类似于一个快速上手的手册。新人可以快速上手,老手也可以快速参考。
补充链接给 Android 开发者的 RxJava 详解
Rxjava项目地址
Rxjava官方文档
本文代码
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64986.html
阅读 3225·2021-11-11 16:55
阅读 2466·2021-10-13 09:39
阅读 2394·2021-09-13 10:27
阅读 2158·2019-08-30 15:55
阅读 3084·2019-08-30 15:54
阅读 3129·2019-08-29 16:34
阅读 1822·2019-08-29 12:41
阅读 1068·2019-08-29 11:33