一、如何使用

在build.gradle中添加依赖

 dependencies {
api 'io.reactivex:rxandroid:1.2.1'
api 'io.reactivex:rxjava:1.3.0'
implementation fileTree(include: ['*.jar'], dir: 'libs')
implementation 'com.android.support:appcompat-v7:27.1.1'
implementation 'com.android.support.constraint:constraint-layout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'com.android.support.test:runner:1.0.2'
androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.2'
}

这里有一个小坑,直接用latest.release没有办法用,不知道为什么

二、代码实现

2.1 使用just+Action1+Action0来实现

  Observable.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.subscribeOn(Schedulers.io()) // Observable运行的线程
.observeOn(AndroidSchedulers.mainThread()) //监听者运行的线程
.subscribe(new Action1<Integer>() {
//onNext
@Override
public void call(Integer integer) {
log("call 1:" + integer);
}
}, new Action1<Throwable>() {
//onError
@Override
public void call(Throwable throwable) {
log("call 2");
}
}, new Action0() {
//onCompleted
@Override
public void call() {
log("call 3");
}
});

运行结果如下,很简单,就不一一解释了。

 10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:1
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:2
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:3
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:4
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:5
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:6
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:7
10-05 11:05:45.955 23619 23619 E MainActivity: yanlog msg:call 1:8
10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 1:9
10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 1:10
10-05 11:05:45.956 23619 23619 E MainActivity: yanlog msg:call 3

2.2 使用Just+Subscriber来实现

代码如下:

            Observable.just(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
.subscribeOn(Schedulers.io()) // Observable运行的线程
.observeOn(AndroidSchedulers.mainThread()) //监听者运行的线程
.subscribe(new Subscriber<Integer>() {
@Override
public void onCompleted() {
log("onCompleted");
} @Override
public void onError(Throwable e) {
log("onError");
} @Override
public void onNext(Integer integer) {
log("onNext:" + integer);
}
});

运行结果如下:

 10-05 19:56:09.991   982   982 E MainActivity: yanlog msg:onNext:1
10-05 19:56:09.991 982 982 E MainActivity: yanlog msg:onNext:2
10-05 19:56:09.991 982 982 E MainActivity: yanlog msg:onNext:3
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:4
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:5
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:6
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:7
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:8
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:9
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onNext:10
10-05 19:56:09.992 982 982 E MainActivity: yanlog msg:onCompleted

Android RxJava小结的更多相关文章

  1. Android RxJava 2 的用法 just 、from、map、subscribe、flatmap、Flowable、Function、Consumer ...【转】

    先简单说说RxJava的用途与价值 原文出处:Android RxJava 2 的用法 用途: 异步 (也就是开线程跳转) 价值: 面对复杂的逻辑,它依然 简洁 ,代码 易读 RxJava2 与 Rx ...

  2. android基础小结

    (注:此小结文档在全屏模式下观看效果最佳) 2016年3月1日,正式开始了我的android学习之路. 最最开始的,当然是学习怎样搭载环境了,然而苦逼的我在win10各种坑爹的指引下还是安装了一个星期 ...

  3. 深入Android RxJava 2

    这篇文章是根据Jake Wharton在GOTO CopenHagen 2016上的讲话整理的. 下一个版本(2.0)的RxJava还在开发中.虽然observable.订阅管理和背压(backpre ...

  4. Android RxJava

    GitHut 地址: https://github.com/ReactiveX/RxAndroid build.gradle: compile 'io.reactivex:rxandroid:1.2. ...

  5. Android RxJava+Retrofit完美封装

    作者简介 本篇来自 小河马 的投稿,分享了自己是如何进行 RxJava+Retrofit 的封装.本文的技术点自然没话说,另外对于这种模块化的思路,希望能帮助到大家.最后提前祝大家周末愉快以及圣诞快乐 ...

  6. android 知识小结-1

    Java哪些数据结构是线程安全的,CurrentHashMap的原理 ConcurrentHashMap.ConcurrentSkipListMap.ConcurrentSkipListSet.Con ...

  7. Android技巧小结之新旧版本Notification

    最近开发用到了通知功能,但有几个地方老是提示deprecated,然后就找了篇文章学习了下新旧版本的不同. Notification即通知,用于在通知栏显示提示信息. 在较新的版本中(API leve ...

  8. Android RxJava/RxAndroid结合Retrofit使用

    概述 RxJava是一个在 Java VM 上使用可观測的序列来组成异步的.基于事件的程序的库.更重要的是:使用RxJava在代码逻辑上会非常简洁明了,尤其是在复杂的逻辑上.告别迷之缩进. RxAnd ...

  9. Android - Rxjava 使用和原理

    用RxJava写的一个Android的小Demo 我所理解的RxJava——上手其实很简单 http://www.jianshu.com/p/5e93c9101dc5

随机推荐

  1. android按压背景

    android:background="?android:actionBarItemBackground"

  2. UIWindow学习

    写在前面 本文内容绝大部分都参考唐巧大神的<iOS开发进阶>,只是结合不是特别长的开发经验加以补充:最后基于UIWindow自定义了一个类似于微信的ActionSheet. UIWindo ...

  3. [POI 2014] Little Bird

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=3831 [算法] 单调队列优化动态规划 时间复杂度 : O(N) [代码] #incl ...

  4. [SHOI 2012] 魔法树

    [题目链接] https://www.lydsy.com/JudgeOnline/problem.php?id=2836 [算法] 树链剖分 时间复杂度 : O(NlogN ^ 2) [代码] #in ...

  5. 棋盘问题(dp)

    棋盘问题 传送门 题目描述 在一个给定形状的棋盘(形状可能是不规则的)上面摆放棋子,棋子没有区别.要求摆放时任意的两个棋子不能放在棋盘中的同一行或者同一列,请编程求解对于给定形状和大小的棋盘,摆放k个 ...

  6. flask的config配置和给实例化传入参数

    灵活性主要体现在配置上,需要什么就配置什么 from flask import Flask app = Flask(__name__) # type:Flask # 调试模式:是否开启调试模式并捕获异 ...

  7. vue 组件 props 和event

    组件是可扩展的HTML元素,封装可重用的代码. 使用祖册的组件,要确保在初初始化根实例之前注册组件 注册的组件中,data必须是函数 父组件通过props向子组件传递数据,子组件通过事件events给 ...

  8. Nginx: 统计PV、UV、独立IP

    1.概念: UV(Unique Visitor):独立访客,将每个独立上网电脑(以cookie为依据)视为一位访客,一天之内(00:00-24:00),访问您网站的访客数量.一天之内相同cookie的 ...

  9. Codeforces - 773A - Success Rate - 二分 - 简单数论

    https://codeforces.com/problemset/problem/773/A 一开始二分枚举d,使得(x+d)/(y+d)>=p/q&&x/(y+d)<= ...

  10. U3D 的一些基础优化

    1.在使用数组或ArrayList对象时应当注意 [csharp] view plaincopy length=myArray.Length; for(int i=0;i<length;i++) ...