RxJava中常见的Subject有4种,分别是 AsyncSubject、 BehaviorSubject、PublishSubject、 ReplaySubject。

AsyncSubject

  使用AsyncSubject无论输入多少参数,永远只输出最后一个参数。

BehaviorSubject

  BehaviorSubject会发送离订阅最近的上一个值,没有上一个值的时候会发送默认值。

BehaviorSubject<Integer> subject = BehaviorSubject.create();subject.onNext(1);subject.onNext(2);subject.onNext(3);subject.onNext(4);subject.subscribe(new Consumer<Integer>(){@Overridepublic void accept(Integer t) throws Exception {System.out.println(t);}});

PublishSubject

  使用PublishSubject从那里订阅就从那里开始发送数据。

PublishSubject<Integer> subject = PublishSubject.create();subject.onNext(1);subject.subscribe(new Consumer<Integer>(){@Overridepublic void accept(Integer t) throws Exception {System.out.println(t);}});subject.onNext(2);subject.onNext(3);subject.onNext(4);

  输出结果2 3 4.

ReplaySubject

  无论何时订阅,都会将所有历史订阅内容全部发出。

ReplaySubject<Integer> subject = ReplaySubject.create();subject.onNext(1);subject.subscribe(new Consumer<Integer>(){@Overridepublic void accept(Integer t) throws Exception {System.out.println(t);}});subject.onNext(2);subject.onNext(3);subject.onNext(4);

  输出结果1 2 3 4.

转载于:https://www.cnblogs.com/zhangwanhua/p/7910727.html

RXJAVA之Subject相关推荐

  1. RxJava练武场之——Token前置请求

    RxJava练武场是一个rxjava在项目中应用的小系列,包括: RxJava练武场之--基于Observable网络框架的搭建 RxJava练武场之--Observable网络框架的解耦和复用 Rx ...

  2. 10章 RxJava源码分析

    本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处 CSDN学院课程地址 RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10 ...

  3. Android开发---RxJava+Retrofit封装

    本文内容是基于Retrofit + RxJava做的一些巧妙的封装.参考了很多文章加入了一些自己的理解,请多指教.源码地址https://github.com/Hemumu/RxSample 先放出b ...

  4. RxJava中常见的几种Subject

    RxJava是什么? 原文是这样描述的: RxJava is a Java VM implementation of Reactive Extensions: a library for compos ...

  5. 拥抱RxJava(番外篇):关于RxJava的Tips Tricks

    前言: 起初写 拥抱RxJava 系列文章.只是因为看到很多人在使用RxJava时候,并没有很正确的理解Reactive Programming.仅仅在项目中使用了Retrofit的Rx Adapte ...

  6. RxJava响应式编程学习笔记

    1.概述 RxJava是一个著名的开源库,是ReactiveX(Reactive Extensions)的一种java实现.ReactiveX是一种响应式扩展框架,有很多实现,如RxAndroid,R ...

  7. RxJava 和 RxAndroid 一 (基础)

    1.RxJava 项目地址 https://github.com/ReactiveX/RxJava 2.RxAndroid 项目地址    https://github.com/ReactiveX/R ...

  8. RxJava RxPermissions 动态权限 简介 原理 案例 MD

    Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...

  9. java品酒会,我学 rxjava 2(3)- 热发射

    这篇文章离上一篇文章有些时日了,概因最难心情大大的不好,非常不爽. 为啥我会专门写一下热发射呢,因为 RxBus 就是使用 RxJava 的热发射(Subject)实现的,但是呢我的出发点不同,我是因 ...

  10. Retrofit+RxJava

    更改 Retrofit解析网页Json数据简单实例,将Retrofit中的回调方式改为RxJava方式 dependencies {compile fileTree(dir: 'libs', incl ...

最新文章

  1. springboot中如何添加第三方的jar包或者说如何配置本地jar
  2. CTFshow php特性 web93
  3. 求虚拟机11.0密钥
  4. 加速repo sync的技巧
  5. 如何在virtualbox中对虚拟机截图
  6. 网络爬虫--14.【糗事百科实战】
  7. HDU 2208 唉,可爱的小朋友(DFS)
  8. Matplotlib Line2D设置
  9. html字母间距属性,html – 是否可以相对于font-size具有字母间距并正确继承?
  10. FLUSH TABLES WITH READ LOCK有多快
  11. 安装R软件(R、studio)的安装包下载官网和教程
  12. 上海车牌拍卖服务器响应时间,上海拍牌技巧:”48秒+700” 最晚出价为55秒
  13. SPIR-V 研究:编译器基本原理(三) - Chomsky文法分类
  14. 捋一捋Unified Language Model Pre-training for Natural Language Understanding and Generation
  15. stm32wb55 flash
  16. 积分商城系统业务逻辑思维导图_怎么开发积分商城系统_OctShop
  17. 21_lua生成随机数
  18. 实体店也可以代办?外卖市场还需严加监管
  19. 三国时期蜀国的巅峰实力
  20. C# 霍尼韦尔扫码枪扫码打印

热门文章

  1. php小总结之 mysqli面向过程、面向对象和PDO在增删改查使用中的一些小区别
  2. RocketMQ 分布式消息中间件 理论介绍
  3. Linux 初级命令
  4. 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_6_等待唤醒机制概述...
  5. 语音识别(Web Speech API)
  6. [NOIP2016]愤怒的小鸟
  7. Laravel5.x 封装的上传图片类
  8. KCF跟踪算法 入门详解
  9. 20170724 Airflow官网资料学习
  10. ubuntu install pip