RxAndroid2 / RxJava2简单的CompletableObserver

CompletableObserver简单的用法跟踪一个任务的结束,不处理复杂的数据传导,例如:

package zhangphil.app;import android.os.Bundle;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;import java.util.concurrent.Callable;import io.reactivex.Completable;
import io.reactivex.CompletableObserver;
import io.reactivex.android.schedulers.AndroidSchedulers;
import io.reactivex.disposables.Disposable;
import io.reactivex.schedulers.Schedulers;public class MainActivity extends AppCompatActivity {private final String TAG = getClass().getSimpleName();@Overridepublic void onCreate(@Nullable Bundle savedInstanceState) {super.onCreate(savedInstanceState);test();}private void test() {Completable.fromCallable(new Callable<Object>() {@Overridepublic Object call() throws Exception {try {Thread.sleep(5000);} catch (InterruptedException e) {e.printStackTrace();}Log.d(TAG, "任务结束!");return null;}}).subscribeOn(Schedulers.io()).observeOn(AndroidSchedulers.mainThread()).subscribe(getCompletableObserver());}private CompletableObserver getCompletableObserver() {return new CompletableObserver() {@Overridepublic void onSubscribe(Disposable d) {Log.d(TAG, "onSubscribe " + System.currentTimeMillis());}@Overridepublic void onComplete() {Log.d(TAG, "onComplete " + System.currentTimeMillis());}@Overridepublic void onError(Throwable e) {}};}
}

代码运行输出:

05-16 14:01:20.908 12292-12292/zhangphil.app D/MainActivity: onSubscribe 1494914480908
05-16 14:01:20.945 12292-12292/zhangphil.app D/InputTransport: Input channel constructed: fd=73
05-16 14:01:20.945 12292-12292/zhangphil.app D/ViewRootImpl@99677a6[MainActivity]: setView = DecorView@de9b5e7[MainActivity] touchMode=true
05-16 14:01:20.949 12292-12292/zhangphil.app W/Activity: AppLock checkAppLockState locked:false verifying:false pkgName = zhangphil.app isInMultiWindowMode:false
05-16 14:01:20.985 12292-12292/zhangphil.app D/ViewRootImpl@99677a6[MainActivity]: MSG_RESIZED_REPORT: ci=Rect(0, 81 - 0, 0) vi=Rect(0, 81 - 0, 0) or=1
05-16 14:01:20.986 12292-12292/zhangphil.app D/ViewRootImpl@99677a6[MainActivity]: MSG_WINDOW_FOCUS_CHANGED 1
05-16 14:01:20.986 12292-12292/zhangphil.app I/InputMethodManager: [IMM] startInputInner - mService.startInputOrWindowGainedFocus
05-16 14:01:20.988 12292-12292/zhangphil.app D/InputTransport: Input channel constructed: fd=74
05-16 14:01:25.911 12292-23777/zhangphil.app D/MainActivity: 任务结束!
05-16 14:01:25.912 12292-12292/zhangphil.app D/MainActivity: onComplete 1494914485912

RxAndroid2 / RxJava2简单的CompletableObserver相关推荐

  1. RxJava2 / RxAndroid2的merge操作合并多个Observable

    RxJava2/RxAndroid2的merge操作合并多个Observable RxAndroid2/RxJava2的merge操作合并若干个Observable为单个可观测的Observable, ...

  2. 一款基于RxJava2+Retrofit2实现简单易用的网络请求框架

    本库是一款基于RxJava2+Retrofit2实现简单易用的网络请求框架,结合android平台特性的网络封装库,采用api链式调用一点到底,集成cookie管理,多种缓存模式,极简https配置, ...

  3. 基于RxJava2+Retrofit2简单易用的网络请求实现

    代码地址如下: http://www.demodashi.com/demo/13473.html 简介 基于RxJava2+Retrofit2实现简单易用的网络请求,结合android平台特性的网络封 ...

  4. 简单java登录页面android_Android 之路 - RxJava2+Retrofit实现简单登陆

    原标题:Android 之路 - RxJava2+Retrofit实现简单登陆 前言 使用RxJava2+Retrofit实现简单登陆. 正文1. Hello world1.1 相关版本 Androi ...

  5. retrofit 会请求两次_基于RxJava2+Retrofit2简单易用的网络请求实现

    简介 基于RxJava2+Retrofit2实现简单易用的网络请求,结合android平台特性的网络封装库,采用api链式调用一点到底,集成cookie管理,多种缓存模式,极简https配置,上传下载 ...

  6. android接口去重,RxJava2 / RxAndroid2操作符distinct去重

    RxJava2 / RxAndroid2操作符distinct去重 distinct去除重复的数据,例如: package zhangphil.app; import android.os.Bundl ...

  7. JAVA调用接口简单封装,Mvp+Retrofit2+RxJava2 项目中使用的简洁封装

    Retrofit2 + RxJava2 是一个强大的组合,完成一系列网络请求 MVP当前用的很多的一种框架,Model+View+Presenter 本文记录了作者在项目中对 Retrofit2 + ...

  8. Android使用Retrofit2.0和RxJava2.0处理网络请求

    首先使用SpringBoot创建一个简单的SpringMVC工程. @RestController public class RetrofitController {@RequestMapping(& ...

  9. RxJava2.x是一个非常棒的流式编程,采用的观察者模式思想,事件的产生者产生事间之后发送给绑定的接受者,接受顺序与发送顺序一致.但是 是独立于RxJava1.x存在,本文讲解RxJava2.x的简

    RxJava2.x是一个非常棒的流式编程,采用的观察者模式思想,事件的产生者产生事间之后发送给绑定的接受者,接受顺序与发送顺序一致.但是 是独立于RxJava1.x存在,本文讲解RxJava2.x的简 ...

最新文章

  1. HashMap 怎么 hash?又如何 map?
  2. spring 之 lookup-method replaced-method II
  3. 5-1 逻辑回归代码(含warning解释)
  4. c语言判断化学方程式,下列是某同学写的六个化学方程式:①Mg+O2点燃.MgO2②C+O2点燃.CO...
  5. JavaSE中环境变量的配置
  6. HandyJSON:Swift语言JSON转Model工具库
  7. matlab中内联,有没有一种方法可以在MATLAB中执行函数内联?
  8. 电脑打开热点后无法连接到网络
  9. 使用ActionForm的validate()进行验证
  10. syn 攻击脚本 python_Python Scapy实现SYN Flood攻击
  11. html换行出现省略号,css怎么设置不换行显示省略号?
  12. 在ubuntu16.04运行neural baby talk
  13. CSDN调整图片大小、位置
  14. mui ajax 懒加载,MUI框架运用中遇见问题总结
  15. 逻辑回归 自由度_回归自由度的官方定义
  16. 如何使用QQ群日历和群活动进行会议室安排
  17. 第一章:2030.5、CSIP、Rule21简介 and 本项目内容介绍
  18. 区块链技术与第四次工业革命之于人类的意义
  19. 简单句 - 主谓/主谓宾/主系表的分析
  20. 项目--静态资源cdn的引入

热门文章

  1. UA MATH 571B Tukey‘s Test for Non-additivity
  2. 未解决oracle错误12505、01034、27101
  3. TSQL批处理插入一万条记录-随机生成某些字段值
  4. VC++更改鼠标指针为系统预定义形状和自定义形状
  5. NPM 安装 TypeScript 和 npm 的 Invalid package.json 错误以及运行第一个typescript程序
  6. win32 DLL 学习总结
  7. 图解Oracle 12c 手动建库
  8. 纯手工服务器维护教程
  9. Java 取得文件名的后缀
  10. 《Linux就该这么学》培训笔记_ch01_部署虚拟环境安装Linux系统