RXJAVA之Subject
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相关推荐
- RxJava练武场之——Token前置请求
RxJava练武场是一个rxjava在项目中应用的小系列,包括: RxJava练武场之--基于Observable网络框架的搭建 RxJava练武场之--Observable网络框架的解耦和复用 Rx ...
- 10章 RxJava源码分析
本篇文章已授权微信公众号 YYGeeker 独家发布转载请标明出处 CSDN学院课程地址 RxJava2从入门到精通-初级篇:https://edu.csdn.net/course/detail/10 ...
- Android开发---RxJava+Retrofit封装
本文内容是基于Retrofit + RxJava做的一些巧妙的封装.参考了很多文章加入了一些自己的理解,请多指教.源码地址https://github.com/Hemumu/RxSample 先放出b ...
- RxJava中常见的几种Subject
RxJava是什么? 原文是这样描述的: RxJava is a Java VM implementation of Reactive Extensions: a library for compos ...
- 拥抱RxJava(番外篇):关于RxJava的Tips Tricks
前言: 起初写 拥抱RxJava 系列文章.只是因为看到很多人在使用RxJava时候,并没有很正确的理解Reactive Programming.仅仅在项目中使用了Retrofit的Rx Adapte ...
- RxJava响应式编程学习笔记
1.概述 RxJava是一个著名的开源库,是ReactiveX(Reactive Extensions)的一种java实现.ReactiveX是一种响应式扩展框架,有很多实现,如RxAndroid,R ...
- RxJava 和 RxAndroid 一 (基础)
1.RxJava 项目地址 https://github.com/ReactiveX/RxJava 2.RxAndroid 项目地址 https://github.com/ReactiveX/R ...
- RxJava RxPermissions 动态权限 简介 原理 案例 MD
Markdown版本笔记 我的GitHub首页 我的博客 我的微信 我的邮箱 MyAndroidBlogs baiqiantao baiqiantao bqt20094 baiqiantao@sina ...
- java品酒会,我学 rxjava 2(3)- 热发射
这篇文章离上一篇文章有些时日了,概因最难心情大大的不好,非常不爽. 为啥我会专门写一下热发射呢,因为 RxBus 就是使用 RxJava 的热发射(Subject)实现的,但是呢我的出发点不同,我是因 ...
- Retrofit+RxJava
更改 Retrofit解析网页Json数据简单实例,将Retrofit中的回调方式改为RxJava方式 dependencies {compile fileTree(dir: 'libs', incl ...
最新文章
- springboot中如何添加第三方的jar包或者说如何配置本地jar
- CTFshow php特性 web93
- 求虚拟机11.0密钥
- 加速repo sync的技巧
- 如何在virtualbox中对虚拟机截图
- 网络爬虫--14.【糗事百科实战】
- HDU 2208 唉,可爱的小朋友(DFS)
- Matplotlib Line2D设置
- html字母间距属性,html – 是否可以相对于font-size具有字母间距并正确继承?
- FLUSH TABLES WITH READ LOCK有多快
- 安装R软件(R、studio)的安装包下载官网和教程
- 上海车牌拍卖服务器响应时间,上海拍牌技巧:”48秒+700” 最晚出价为55秒
- SPIR-V 研究:编译器基本原理(三) - Chomsky文法分类
- 捋一捋Unified Language Model Pre-training for Natural Language Understanding and Generation
- stm32wb55 flash
- 积分商城系统业务逻辑思维导图_怎么开发积分商城系统_OctShop
- 21_lua生成随机数
- 实体店也可以代办?外卖市场还需严加监管
- 三国时期蜀国的巅峰实力
- C# 霍尼韦尔扫码枪扫码打印
热门文章
- php小总结之 mysqli面向过程、面向对象和PDO在增删改查使用中的一些小区别
- RocketMQ 分布式消息中间件 理论介绍
- Linux 初级命令
- 阶段1 语言基础+高级_1-3-Java语言高级_05-异常与多线程_第4节 等待唤醒机制_6_等待唤醒机制概述...
- 语音识别(Web Speech API)
- [NOIP2016]愤怒的小鸟
- Laravel5.x 封装的上传图片类
- KCF跟踪算法 入门详解
- 20170724 Airflow官网资料学习
- ubuntu install pip