Android 积累一些RxJava2.0有关的知识

深度解析移动开发中 RxJava 的背压策略 本文旨在帮助移动开发者理解RxJava中的背压问题及其解决方案。我们将覆盖从基础概念到高级应用的完整知识体系,包括背压的产生原因、RxJava提供的背压策略以及实际应用场景。核心概念与联系:解释背压的基本概念及其重要性背压策略详解:分析RxJava提供的各种背压策略实际应用:通过代码示例展示不同背压策略的应用场景最佳实践:总结在不同场景下选择背压策略的建议背压(Backpressure):在数据流中,当生产者产生数据的速度超过消费者处理数据的能力时产生的压力。Observable。 阅读详情

最近偶然逛逛“淘宝(找代码)”,发现rxjava变rxjava2了。

 

变化1上码:

Observable.create(new ObservableOnSubscribe<String>() {
            @Override
            public void subscribe(ObservableEmitter<String> e) throws Exception {
                e.onNext("1");
                e.onNext("2");
                e.onNext("3");
                e.onNext("4");
                e.onComplete();
                e.onNext("5");

            }
        }).subscribe(new Observer<String>() {
            @Override
            public void onSubscribe(Disposable d) {
                dis=d;
                Log.i("Rxjava2::onSubscribe","d");

            }

            @Override
            public void onNext(String o) {

                Log.i("Rxjava2::onNext",o);
                if (o.equals("2")){
                    dis.dispose();
                }
                tv.setText(o);
            }

            @Override
            public void onError(Throwable e) {
                Log.i("Rxjava2::onError",e.getMessage().toString());

            }

            @Override
            public void onComplete() {
                Log.i("Rxjava2::onComplete","c");

            }
        });

貌似多了:

 

ObservableEmitter:用于向观察者发送数据。(我觉得这里可以理解成服务器【被观察者】与客户端【观察者】的关系,被观察者向观察者发送onnext(),onerror,oncomplete三种指令,只不过onnext可携带参数),这里明确的是subcrible里的代码坑定会执行的,无论观察者愿不愿意收到,只要绑定了,就会发,只不过观察者可以选择不接受。

Disposable:被观察者向观察者发送数据,如果观察者不想接怎么办,就得调用dispose()方法,当然被观察者也可以打断观察者接受数据,只要调用oncomplete或者onerror方法,这一点和rxjava1.x是一样的

变化2:貌似没有什么action1 function1 之类的回调了。

番外:个人用rxjava1.x的开发的时候就贼喜欢用action1的回调其他的一概不写,认为没必要。然而血的教训就是遇到这个bug:

java.lang.IllegalStateException: Exception thrown on Scheduler.Worker thread. Add `onError` handling.

Caused by: rx.exceptions.OnErrorNotImplementedException

Caused by: rx.exceptions.MissingBackpressureException

大概原因是:少了onerror的回调处理(场景还原:屏幕按黑了再过一会按亮,就蹦)【个人观点错的】

坑爹指数:尼玛拉下来的log一看,不报哪一行出错

解决办法:用rxjava的地方,用lamb加上onerror处理?(貌似没再崩锅)

当然我的想法绝逼是错的,在读过这位大神的著作之后:

把玩他吧

上码:

 

        Observable.just("ddd").subscribe(new Consumer<String>() {
            @Override
            public void accept(@NonNull String s) throws Exception {

            }
        });

貌似加了个抛出异常,第一眼觉得很6(操蛋)。

 

 

  Observable.just("ddd").subscribe((msg)->{Log.i("接收的值",msg);},Throwable::printStackTrace);

或者像rxjava1一样写?

 

 

  Observable.just("ddd").subscribe((msg)->{Log.i("接收的值",msg);},(error)->{Log.i("error",error.getMessage());});


 

Retrofit2+Rxjava2的变化

 

        Retrofit adapter = new Retrofit.Builder()
                .baseUrl(endpoint)
                .addConverterFactory(ScalarsConverterFactory.create())
                .addConverterFactory(GsonConverterFactory.create())
                .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
                .build();
        return adapter.create(serviceClass);

 

//用rxjava2轮询,轮询有限次数,每隔0.1s轮询一次,总共轮询20次。

 Flowable.interval(0, 100, TimeUnit.MILLISECONDS)
                .take(20)
                .subscribeOn(Schedulers.io())
                .subscribe(new Subscriber<Long>() {
                    @Override
                    public void onSubscribe(Subscription s) {
                        s.request(100);
                        mCheckUpdate = Disposables.fromSubscription(s);
                    }

                    @Override
                    public void onNext(Long aLong) {
                        if (isNetworkAvailable()) {
                            processor.onNext("checkUpdate");
                            mCheckUpdate.dispose();
                        }
                    }

                    @Override
                    public void onError(Throwable t) {


                    }

                    @Override
                    public void onComplete() {
//                        getAssociated();


                        showDialog();
                    }
                });

 

 


 

 

 

 

 

保姆级教程:用MS建完分子模型,如何一键转成LAMMPS能用的data文件? 本文详细介绍了如何将Materials Studio(MS)构建的分子模型转换为LAMMPS可用的data文件的全流程。重点讲解了力场选择、环境配置、转换命令参数解析及常见问题排查,帮助初学者快速掌握MS与LAMMPS之间的数据转换技巧,特别适合计算材料学领域的研究人员。 阅读详情

相关推荐

ESP32 开发实战:VS Code 头文件波浪线及编译错误的终极解决方案

本文针对ESP32开发者在VS Code中常见的头文件红色波浪线和fatal error编译错误,提供了终极解决方案。通过详细讲解如何配置c_cpp_properties.json文件来修复编辑器智能提示,以及如何修改CMakeLists.txt来修正编译器路径,帮助开发者彻底解决环境配置问题,提升开发效率。

prometheus9mon的博客 293

使用响应式编程(RxJava)开发Android App

Android app development using the reactive programming paradigm (RxJava)原作者:Arif Nadeem如果你已经看过了RxJava或其他的ReactiveX库的点赞数,你一定会同意我的说法:响应式编程的学习曲线很陡峭,而之所以形成这种学习体验,则是因为没有好的学习向导和书籍。我探究了响应式编程(尤其是RxJava)背后的基本原理

kyleada的专栏 6731

企业级AI项目落地实战指南

企业级 AI 项目落地需构建“分阶段实施 + 多维度风控”的双轮驱动体系:实施端通过 POC 验证技术可行性、试点建立评估标准、规模化实现价值复制,各阶段需结合行业案例(如东阳光药、旺盈集团)提炼可复用经验;风险端则需覆盖技术(数据安全、模型稳定性)、合规(全球监管动态)、组织(人才与文化)维度,通过工具化框架(AI TRISM)与案例策略(邮储银行可解释性设计、拓斯达培训体系)实现风险可控。最终通过“场景聚焦 - 合规嵌入 - 持续优化”的循环机制,实现 AI 技术从“试点成功”到“全面价值创造”的跨越。

2509_93209761的博客 1437

rxJava 搜索

Retrofit retrofit = new Retrofit.Builder() .baseUrl("http://192.168.1.189:5000/") .addConverterFactory(GsonConverterFactory.create()) .addCallAdapterFa...

vily_luky的博客 376

LLC同步整流实战:从驱动时序到调试仿真,效率提升与避坑指南

同步整流技术是提升开关电源效率的关键手段,尤其在LLC谐振变换器中,通过低导通电阻MOSFET替代二极管可显著降低副边整流损耗。然而,驱动时序、电流过零检测及轻载模式切换是工程实践中的核心难点。从Vds检测原理到死区调节,再到仿真与实测验证,工程师需掌握完整的调试方法论。该技术广泛应用于通信电源、服务器电源及车载DC/DC,合理设计LLC同步整流方案能实现满载效率提升约1.8个百分点,同时优化热分布。本文以600W半桥LLC样机为线索,深入分析工作模态、驱动芯片选型、波形判断与仿真模型搭建,为电源设计提供可

weixin_29165465的博客 293

YOLO26涨点改进 | 全网独家首发 主干改进篇 | TGRS 2025 | RepViT-TD,告别庞大骨干!YOLO26 + RepViT-TD轻量又强大,实现更快更准的小目标检测!

本文提出将RepViT-TD轻量级主干网络应用于YOLO26目标检测框架,以提升小目标检测性能。RepViT-TD通过优化计算资源分配,强化前两层高分辨率特征提取能力,在保持轻量化的同时(仅4.85M参数)显著提升微小目标的检测精度(AI-TODv2数据集AP50达54.6%)。文章详细介绍了三种主干改进方案(RepVit_ldy1/2/3)的代码实现,并提供了完整的YAML配置文件修改指南,使模型能高效部署于边缘设备。实验表明,该方法在计算复杂度(38.19G FLOPs)和检测精度间取得了良好平衡。

Ai缝合怪、助力小伙伴高效发论文 327

安卓开发异常rx.exceptions.OnErrorNotImplementedException: Must be called from main thread of fragment host

rx.exceptions.OnErrorNotImplementedException: Must be called from main thread of fragment host异常提示:必须在主线程中执行 异常描述:我在执行某个操作时出现的异常,类似跳转到首页等的页面跳转 异常解决方案:创建一个线程,在创建的线程里面执行原来想要执行的代码,new 一个handler调用post发送消息

码出人生 9510

华为od 面试八股文_C++_04_含答案

华为od 面试八股文_C++_04_含答案

MISAYAONE的博客 2472

Android延时处理(Timer/TimerTask,Handler),定时器

-- bugs: TimerTask is scheduled already rx.exceptions.OnErrorNotImplementedException: TimerTask is scheduled already Caused by: rx.exceptions.OnErrorNotImplementedException: TimerTask is scheduled alr...

ShareUs的专栏 1460

ERROR conda.core.link:_execute(502): error occurred while installing conda-forge::setuptools 解决方案

本文主要介绍了ERROR conda.core.link:_execute(502): An error occurred while installing package mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge::setuptools-65.5.1-pyhd8ed1ab_0.FileNotFoundError(2, 系统找不到指定的文件。, None, 2) 解决方案,希望能对新手有所帮助。 文章目录 1. 问题描述 2. 解决方案

weixin_43178406的博客 8万+

YOLOv11改进 | 损失函数篇 | YOLOv11引入引MPDIoU, GIoU,DIoU, CIoU, SIoU,EIoU, WIoU, LMPDIoU等损失函数

到此本文的正式分享内容就结束了,在这里给大家推荐我的YOLOv11改进有效涨点专栏,本专栏目前为新开的,后期我会根据各种前沿顶会进行论文复现,也会对一些老的改进机制进行补充,如果大家觉得本文帮助到你了,订阅本专栏,关注后续更多的更新~1. YOLOv11中添加MPDIoU, GIoU,DIoU, CIoU, SIoU等损失函数的方式。文件中用给出的代码替换掉。

tsg6698的博客 5277

Rxjava2源码分析四

java泛型学习 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、pandas是什么?二、使用步骤1.引入库2.读入数据总结新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 前言 提示:

qq_34606099的博客 461

Qt —— 在Win11下“Qt for Android“开发环境,通过USB在真机(华为Meta60 PRO)上调试运行,并打包APK并在真实手机运行

Qt —— 在Win11下“Qt for Android“开发环境,打包APK并在真实手机运行

310

android 积累一些关于rxjava的知识点

rxjava对于我来说,是一套比较新的东西。程序员要是不时刻抓住自己不会的东西,就会淘汰。就像android版本都出到7点几了,我们总不能还用4点几,3点几的那一套吧。 rxjava在我看来就是一套比较先进的asynctask,用来处理异步请求的一种规范(得益于它的代码思路清晰),在android中可以用来代替asynctask甚至是handler。常与当前流行 网络请求框架r

SpringYang 1119

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

RxJava2替换RxJava1遇到的问题记录

【转载请注明出处:李诗雨】 不诗意的女程序猿不是好厨师~ 最初是在同学的指导下开始使用RxJava的,那时使用的还是RxJava1,现在发现RxJava2相对于RxJava1更好用,于是便换成了RxJava2。期间遇到了一些问题,在这里做个记录。 恩,天真无鞋的我以为只要在gradle文件中改下配置,就完成了RxJava1到RxJava的升级了,可是事实并不是这个样子的。

cjm2484836553的博客 1617

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Android RxJava第三弹之RxJava2.0尝鲜

Android RxJava第一弹之原理详解、使用详解、常用场景(基于Rxjava2.0)Android RxJava第二弹之RxJava封装库 RxJava+Animation RxJava+Glide在Android RxJava第一弹之原理详解、使用详解、常用场景(基于Rxjava2.0)一文中我一直在说RxJava2.0,2.0在16年八九月份的时候新出来 ,让我们一探究竟吧引言 RxJ

qq_28195645的博客 1461

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android MVVM框架搭建(二)OKHttp + Retrofit + RxJava

Android MVVM框架搭建(二)Retrofit + RxJava前言正文一、Retrofit使用二、RxJava使用 前言   在上一篇文章中,简单的介绍了MVVM框架的成员和简单使用,一个成熟的框架自然是离不开网络访问的,因此文本将通过Retrofit + RxJava去为MVVM框架增加一个网络请求模块。 正文   让我们开始吧!说实话搭建框架首先要做的是创建一个library,但是我并没有这么做,不是不去做,而是还不成熟。现在这个框架还不完整,还少了很多实际开发中需要的东西。因此一个成熟的框架

晨曦 1万+

Android RxJava3入门

RxJava3简介一些概念观察者模式背压最基础的使用配置创建被观察者Observable创建观察者Observer订阅Subscribe运行结果基于事件流的链式调用(简洁使用)全部代码 简介 RxJava3是Android的一个响应式编程框架。 Android的异步操作是用AsyncTask和Handler,但是当请求多了以后,代码的逻辑将会变得十分的复杂,这时候使用RxJava就可以让整个代码的逻辑变得清晰。 RxJava是基于事件流的链式调用,将链式编程风格和异步结合在一起。RxJava的原理其实就是:

舒小羽的博客 4273

一款基于MVP、RxJava2和Retrofit2的Android开发框架

前言 该框架的内容是我在工作中自己积累下来的,现分享给大家。由于毕业后我只身一人负责公司的Android项目,都是一些小型的项目,自身能力也着实有限,如有不妥之处,还望大家指正。 我的GitHub主页:https://github.com/BigWolfDean 本框架的GitHub地址:https://github.com/BigWolfDean/Mvp-Rxjava2-Retrofit

Langenius的博客 688

对RxJava2理解的总结

前言: 如果你在看过诸多RxJava2相关的文章,仍然对RxJava2没有一个整体的认识的话,可以看一下这篇文章。全篇,以问答的形式,由简入繁,一步步带你认识RxJava2。如果你还没有学过RxJava2,那可以参考这篇 :RxJava 2.x 入门教程 1、什么是RxJava2? 答:RxJava2是一个工具,也是一个库。 2、什么是工具或是库? 答:工具,就是用来做事的。比如,剪刀可...

李岳锋的专栏 2657

安卓开发必备知识体系:安卓篇

1. 前言 前后历时一个半月,也算是拿到了心仪的 offer,顺便水一篇总结把。 前后经历了菜鸟网络、有赞、手淘、头条、全民直播、喜马拉雅,面的多是 1~3 年的岗位。除了手淘和头条一面被刷 QAQ,其他的都走完了流程,然而拿到 offer 的只有最后两个。对比之下,选择了喜马拉雅。 马云说,员工离职的原因无非是钱不到位、或者心委屈了。看着周围的同事整天浑浑噩噩,满足于改改UI、应付一下需求,不...

weixin_34138139的博客 129

android快速搭建项目积累

android快速搭建项目工程

langwang2的专栏 1172

Android框架学习之RxJava(一)基本概念

**前言第一次写微博,以后将学习的只是记录下来 ** 添加依赖compile 'io.reactivex:rxandroid:1.2.1' compile 'io.reactivex:rxjava:1.1.6'一.基本概念1.Observer:观察者,源码中Observer是一个接口,其中有 onCompleted(),onError(Throwable e),onNext(T t)方法。pub

hzflogo的博客 402

字节跳动面试真题:2021大厂Android面试经历,积累总结

什么是中年危机 根据权威数据显示,国内IT程序员鼎盛时期是在25-27岁左右,30岁对于程序员而言完全是一个38线,接着就是转业转岗的事情,这一点在业界也算是一个共识了。 大学毕业步入IT行业普遍年龄也是在22岁左右,然而22-30岁之间也就是8年左右的时间,那么27岁也就是职业生涯“中年”的开始,那么作为程序员的你有准备好如何度过“中年危机”吗? 当程序猿到了28岁左右的“中年危机”就不一样了,这个年纪也是程序猿们工作积累的高峰期,有的程序猿已经换了好几份工作,也有的程序猿们一直在一家企业做了好几个大型项

m0_57066131的博客 277

Android 开发中的日常积累

Android 开发中的日常积累关于我区长区长的独立博客优快云博客-区长github博客新浪微博-_区长知乎-区长邮箱-li330324@gmail.com扔物线(凯哥)的 HenCoder给 Android 开发者的 RxJava 详解hencoderHenCoder:给高级 Android 工程师的进阶手册Android 开发进阶: 自定义 View 1-1 绘制基础Android 开发进阶...

baidu_32472003的博客 633

安卓已死?5年经验Android程序员面试27天,Android校招面试指南

前言 找工作还是需要大家不要紧张,有我们干这一行的接触人本来就不多 难免看到面试官会紧张,主要是因为怕面试官问的问题到不上来,那时候不要着急 ,答不上了的千万不然胡扯一些,直接就给面试官说这块我还没接触到,以后如果工作当中遇到的话我可以很快的吧这个问题给解决了,但是我们有了这篇文章,就不一样了,基本上问的问题都有适当的看一下,到时候很快就可以拿到 offer 我在这里祝大家工作顺利,天天开心 ~好了下面就是正题。 常规电话面试 1 JAVA基础思想:设计模式与面向对象 2 安卓View绘制流程 3 常规的

CHAMPION8888的博客 205
上一篇: Python3 积累一些简单文件传输协议(TFTP)的知识点
下一篇: 写在离职前
泡温泉的咸鱼
博客等级 码龄11年 39粉丝 48原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值