RxJava 2.x新特性总结整理
发布时间 - 2026-01-11 00:26:39 点击率:次什么是RxJava

Rx是异步响应式编程的意思,本质是观察者模式,以观察者和订阅者的异步响应式编程。
本文主要介绍了关于RxJava 2.x新特性的相关资料,下面话不多说,来看看详细的介绍吧。
背压的分离
Flowable/Subscriber
Flowable.range(0,10)
.subscribe(new Subscriber<Integer>() {
Subscription sub;
//当订阅后,会首先调用这个方法,其实就相当于onStart(),
//传入的Subscription s参数可以用于请求数据或者取消订阅
@Override
public void onSubscribe(Subscription s) {
Log.w("TAG","onsubscribe start");
sub=s;
sub.request(1);
Log.w("TAG","onsubscribe end");
}
@Override
public void onNext(Integer o) {
Log.w("TAG","onNext--->"+o);
sub.request(1);
}
@Override
public void onError(Throwable t) {
t.printStackTrace();
}
@Override
public void onComplete() {
Log.w("TAG","onComplete");
}
});
输出:
onsubscribe start onNext--->0 onNext--->1 onNext--->2 ... onNext--->10 onComplete onsubscribe end
根据上面的代码的结果输出中可以看到,当我们调用subscription.request(n)方法的时候,不等onSubscribe()中后面的代码执行,就会立刻执行到onNext方法,因此,如果你在onNext方法中使用到需要初始化的类时,应当尽量在subscription.request(n)这个方法调用之前做好初始化的工作;
另外一种创建方法
Flowable.create(new FlowableOnSubscribe<Integer>() {
@Override
public void subscribe(FlowableEmitter<Integer> e) throws Exception {
e.onNext(1);
e.onNext(2);
e.onNext(3);
e.onNext(4);
e.onComplete();
}
}
//需要指定背压策略
, BackpressureStrategy.BUFFER);
其他观察者模式
- Single/SingleObserver
- Completable/CompletableObserver
- Maybe/MaybeObserver
以上三种类似, 比较适合发送单个数据, 并不适合发送大量数据.
//判断是否登陆
Maybe.just(isLogin())
//可能涉及到IO操作,放在子线程
.subscribeOn(Schedulers.newThread())
//取回结果传到主线程
.observeOn(AndroidSchedulers.mainThread())
.subscribe(new MaybeObserver<Boolean>() {
@Override
public void onSubscribe(Disposable d) {
}
@Override
public void onSuccess(Boolean value) {
if(value){
...
}else{
...
}
}
@Override
public void onError(Throwable e) {
}
@Override
public void onComplete() {
}
});
实际上,这种观察者模式并不用于发送大量数据,而是发送单个数据,也就是说,当你只想要某个事件的结果(true or false)的时候,你可以用这种观察者模式
Action
Rx1.0———–Rx2.0
Action1——–Action
Action1——–Consumer
Action2——–BiConsumer
后面的Action都去掉了,只保留了ActionN
参考
总结
以上就是关于RxJava 2.x新特性的全部内容了,希望本文的内容对大家的学习或者工作能带来一定的帮助,如果有疑问大家可以留言交流,谢谢大家对的支持。
# rxjava2.x
# rxjava2
# rxjava
# 1.x
# 2.x
# RxJava入门指南及其在Android开发中的使用示例
# RxJava入门之介绍与基本运用
# 新特性
# 就会
# 放在
# 你在
# 可以用
# 当你
# 可以看到
# 三种
# 来看看
# 掉了
# 相关资料
# 当我们
# 涉及到
# 谢谢大家
# 多说
# 留了
# 都去
# 判断是否
# 也就是说
# 有疑问
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
Java类加载基本过程详细介绍
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
详解免费开源的DotNet二维码操作组件ThoughtWorks.QRCode(.NET组件介绍之四)
香港服务器网站生成指南:免费资源整合与高速稳定配置方案
Laravel Eloquent模型如何创建_Laravel ORM基础之Model创建与使用教程
简单实现Android文件上传
Laravel Artisan命令怎么自定义_创建自己的Laravel命令行工具完全指南
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Laravel如何获取当前用户信息_Laravel Auth门面获取用户ID
WordPress 子目录安装中正确处理脚本路径的完整指南
Laravel怎么配置自定义表前缀_Laravel数据库迁移与Eloquent表名映射【步骤】
购物网站制作费用多少,开办网上购物网站,需要办理哪些手续?
Android okhttputils现在进度显示实例代码
HTML5段落标签p和br怎么选_文本排版常用标签对比【解答】
如何在阿里云虚拟主机上快速搭建个人网站?
Swift开发中switch语句值绑定模式
湖南网站制作公司,湖南上善若水科技有限公司做什么的?
邀请函制作网站有哪些,有没有做年会邀请函的网站啊?在线制作,模板很多的那种?
高端建站三要素:定制模板、企业官网与响应式设计优化
Laravel如何发送邮件和通知_Laravel邮件与通知系统发送步骤
BootStrap整体框架之基础布局组件
jQuery中的100个技巧汇总
Laravel如何实现多表关联模型定义_Laravel多对多关系及中间表数据存取【方法】
Laravel如何处理表单验证?(Requests代码示例)
谷歌浏览器下载文件时中断怎么办 Google Chrome下载管理修复
北京网站制作费用多少,建立一个公司网站的费用.有哪些部分,分别要多少钱?
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
如何在腾讯云服务器上快速搭建个人网站?
Laravel怎么使用artisan命令缓存配置和视图
制作企业网站建设方案,怎样建设一个公司网站?
网站制作价目表怎么做,珍爱网婚介费用多少?
Laravel如何创建自定义中间件?(Middleware代码示例)
Laravel怎么进行数据库事务处理_Laravel DB Facade事务操作确保数据一致性
Laravel如何实现API速率限制?(Rate Limiting教程)
LinuxCD持续部署教程_自动发布与回滚机制
如何在阿里云域名上完成建站全流程?
Laravel怎么在Controller之外的地方验证数据
Laravel观察者模式如何使用_Laravel Model Observer配置
创业网站制作流程,创业网站可靠吗?
Laravel怎么定时执行任务_Laravel任务调度器Schedule配置与Cron设置【教程】
微信小程序 配置文件详细介绍
Laravel如何实现密码重置功能_Laravel密码找回与重置流程
阿里云网站搭建费用解析:服务器价格与建站成本优化指南
什么是javascript作用域_全局和局部作用域有什么区别?
详解Nginx + Tomcat 反向代理 如何在高效的在一台服务器部署多个站点
齐河建站公司:营销型网站建设与SEO优化双核驱动策略
如何快速查询网站的真实建站时间?
使用PHP下载CSS文件中的所有图片【几行代码即可实现】
Laravel如何集成第三方登录_Laravel Socialite实现微信QQ微博登录
如何彻底卸载建站之星软件?

