debounce操作符是对源Observable间隔期产生的结果进行过滤,如果在这个规定的间隔期内没有别的结果产生,则将这个结果提交给订阅者,否则忽略该结果,原理有点像光学防抖.

.debounce(时间,时间单位)

例子:

 Observable.create(new Observable.OnSubscribe<Integer>() {@Overridepublic void call(Subscriber<? super Integer> subscriber) {if (subscriber.isUnsubscribed()) return;try {for (int i = 0; i < 10; i++) {subscriber.onNext(i);try {Thread.currentThread().sleep(i * 1000);} catch (InterruptedException e) {e.printStackTrace();}}subscriber.onCompleted();} catch (Exception e) {subscriber.onError(e);}}}).subscribeOn(Schedulers.newThread()).debounce(5, TimeUnit.SECONDS).subscribe(new Action1<Integer>() {@Overridepublic void call(Integer integer) {LogUtils.d("------->call():" + integer);}});

结果为:

03-01 10:01:15.040 3591-3736/com.rxandroid.test1 D/----->: ------->call():5
03-01 10:01:20.030 3591-3736/com.rxandroid.test1 D/----->: ------->call():6
03-01 10:01:26.030 3591-3736/com.rxandroid.test1 D/----->: ------->call():7
03-01 10:01:33.030 3591-3736/com.rxandroid.test1 D/----->: ------->call():8
03-01 10:01:41.030 3591-3736/com.rxandroid.test1 D/----->: ------->call():9

在这里间隔期定义为5s,很显然第一个5秒 期间产生了不止一个数据,所以都会舍弃,从第5个数据开始,每个间隔期只产生了唯一的一个数据,这回提交给订阅者

RxJava过滤操作符 debounce相关推荐

  1. Carson带你学Android:RxJava过滤操作符

    前言 Rxjava由于其基于事件流的链式调用.逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎. 今天,我将为大家详细介绍RxJava操作符中最常用的 过滤操作符,希望你们会 ...

  2. RxJava 过滤操作符(Filtering Observables Operators)

    RxJava系列教程: 1. RxJava使用介绍 [视频教程] 2. RxJava操作符   • Creating Observables(Observable的创建操作符) [视频教程]   • ...

  3. RxJava过滤操作符

    概述 过滤操作符用于过滤和选择Observable发射的数据序列,让Observable只返回满足我们条件的数据. Debounce Debounce会过滤掉发射速率过快的数据项,相当于限流,但是需要 ...

  4. RxJava 过滤操作符 distinct 和 distinctUntilChanged

    distinct  看下文档 distinct  : 过滤掉重复的元素 distinctUntilChanged: 过滤掉连续重复的元素,不连续重复的是不过滤 看下代码 1 distinct Obse ...

  5. RxJava过滤操作符 filter

    filter操作符是对源observable产生的结果自定义规则进行过滤,只有满足条件的结果才会提交给订阅者: 官方流程图: .filter(new Fuc1<t1,Boolean>(){ ...

  6. RxJava 过滤操作符 ofType

    .ofType(class)  指定某个类型的class,过滤属于这个类型的的结果,其它抛弃 例子: Observable.just("first", 2, 3, "fo ...

  7. RxJava 过滤操作符 throttleFirst 与 throttleLast 以及 sample

    看文档发现 throttleFirst 与 throttleLast 以及 Sample 都跳到同一个界面Sample throttleFirst :在某段时间内,只发送该段时间内第1次事件(假如一个 ...

  8. RxJava 过滤操作符 take 与 takeLast

    take 看下官方文档 take : 指定 观察者正序接受指定的items数量 takeLast 指定观察者正序接受最后指定的items的数量 看下demo take的代码 Observable.ju ...

  9. RxJava 过滤操作符skip 与 skipLast

    skip 看下文档 skip 是正序跳过指定的items skipLast 是正序跳过指定最后几个items 下面看下代码 Observable.just(1,2,3,4,5,6).skip(1)// ...

最新文章

  1. Java多线程模式-Balking模式
  2. HNSW nmslib
  3. 亮剑.NET. 图解C#开发实战 在线阅读
  4. php实现cc攻击防御和防止快速刷新页面示例
  5. Java进阶:ArrayList线程安全问题和解决方案
  6. 关于MyBatis框架这一篇就够了
  7. 用Python实现一个简单的智能换脸软件
  8. echarts map 点击地图区域变色_pyecharts 地图可视化
  9. Vue的router导航重复-报错:Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation to curren
  10. 《Algorithms 4th Edition》读书笔记——2.4 优先队列(priority queue)-Ⅵ
  11. c 语言回调函数例子,C语言回调函数一个简单的例子
  12. m0单片机io口_51单片机50个例程代码
  13. 销售管理软件系统的两大优势是什么?
  14. Day10--路由嵌套+项目前后台搭建
  15. 360主机卫士linux安装软件,360主机卫士Linux专杀版0.4.1 官方版(32位+64位)下载_云间下载...
  16. php查询qq等级,php仿QQ等级太阳显示函数_php
  17. Va02 修改数量和价格条件时报错
  18. 使用pandas对excel表格筛选
  19. android打开wav格式,在Android中使用AudioTrack播放WAV文件
  20. 织梦高端婚纱摄影网站织梦模板(带手机端

热门文章

  1. Java--反编译软件
  2. 在Xml中加注释的方法
  3. VS中Qt 开发——无法解析的外部符号 QMetaObject 解决办法
  4. 基础攻防实验-DVWA-秋潮-网络配置
  5. 云服务器网站直接域名登录,[一叶花开]网站搭建-天翼云服务器跳过备案实现可直接访问IP地址以及解析域名...
  6. 在线python编辑器-在线python编辑器
  7. USG6500端口映射
  8. 【k-匿名(k-Anonymity)代码实现】差分隐私代码实现系列(三)
  9. “COMSOL Multiphysics多物理场仿真技术与应用” 电化学专题
  10. storage/emulated/0.到底在哪儿