Android开发之路 - RxJava基础

Android中的RxJava 最近准备梳理一下Kotlin,先复习一遍RxJava思想,做个学习笔记+伪代码,整个脉络分为三个部分。 (一)使用场景 RxJava是重量级、最复杂的框架(没有之一),JakeWharton 的巅峰之作,操作符非常丰富、特别庞大,学关键的内容,学思维方式,看PPT资料,学两遍。 为什么要学习RxJava? 改变思维(Rx思维)来提升效率,响应式编程/异步事件流编程 Rx思维:起点(分发事件)—>…—>终点(消费事件),中间不会断掉且可以做拦截,链条式思维 学习资料 源码:JakeWhar. 阅读详情

前言

人真是一种可怕的动物,每个人都能专注 在做他喜欢的事的时候,入职新的公司很忙,最近一直在学东西,基本上都是用到啥就看一看,根本没时间总结写博客。

认识RxJava

RxJava是一个Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库,在Android的开发中一般就是使用他的操作符配合Retrofit实现异步的网络请求。

作用

相当于Android中的handler和AsyncTask等实现异步的操作

特点

  • 逻辑简洁
  • 实现优雅
  • 使用简单

    更重要的是随着逻辑的复杂他依然可以保持它的特性使逻辑清晰

原理

RxJava的设计的原理就是观察者和被观察者 被观察者产生要处理的时间观察者对产生的事件进行处理 他们之间通过订阅来建立联系

  • 事件:被观察者和观察者之间的沟通的载体
  • 被观察者:产生事件的事件元
  • 观察者:对观察者产生的事件进行处理
  • 订阅:建立二者之间的联系

简单的使用

1 使用的步骤是

这里写图片描述

2 具体的实现的代码

 /***
         * RxJava 实现的是异步的网络操作 同时支持线程指之间的切换
         * 创建被观察者   发送是事件要被处理的事物
         * create() 是最基本的创建RxJava的方法 通过实现接口的subscribe()定义发送的事件
         */
        val observable = Observable.create(object : ObservableOnSubscribe<Int> {
            /***
             * ObservableEmitter 是一个事件发送器 作用是用来发送事件的
             */
            override fun subscribe(e: ObservableEmitter<Int>?) {
                e!!.onNext(1)
                e!!.onNext(2)
                e!!.onNext(3)
                e!!.onNext(4)
                e!!.onNext(5)
                e!!.onNext(6)
                e!!.onComplete()
            }
            /***
             * subscribeOn() 指定的是被观察者运行的线程
             * observeOn() 指定的是观察者运行的线程
             * Schedulers.io() 代表io操作的线程, 通常用于网络,读写文件等io密集型的操作
             * Schedulers.computation() 代表CPU计算密集型的操作, 例如需要大量计算的操作
             * Schedulers.newThread() 代表一个常规的新线程
             * AndroidSchedulers.mainThread() 代表Android的主线程
             */
//            订阅的关系的建立
        }).subscribe(object : Consumer<Int> {
            override fun accept(t: Int?) {
//               正常的事件处理逻辑
            }
        }, object : Consumer<Throwable> {
            override fun accept(t: Throwable?) {
//              异常的情况下的处理逻辑
            }
        })

本实例在建立了订阅的关系之后通过两个RxJava提供的函数对接收的数据处理和对异常信息的处理
RxJava提供了一系列的函数式接口实现简单的观察者
这里写图片描述

Subscribe的一系列重载方法

 public final Disposable subscribe() {}
    // 表示观察者不对被观察者发送的事件作出任何响应(但被观察者还是可以继续发送事件)

    public final Disposable subscribe(Consumer<? super T> onNext) {}
    // 表示观察者只对被观察者发送的Next事件作出响应
    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError) {} 
    // 表示观察者只对被观察者发送的Next事件 & Error事件作出响应

    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete) {}
    // 表示观察者只对被观察者发送的Next事件、Error事件 & Complete事件作出响应

    public final Disposable subscribe(Consumer<? super T> onNext, Consumer<? super Throwable> onError, Action onComplete, Consumer<? super Disposable> onSubscribe) {}
    // 表示观察者只对被观察者发送的Next事件、Error事件 、Complete事件 & onSubscribe事件作出响应

    public final void subscribe(Observer<? super T> observer) {}
    // 表示观察者对被观察者发送的任何事件都作出响应

对观察者方法的重载是得我们可以支队我们关心的事件做处理 ,就是更加人性化

Android RxJava: 这是一份全面的 操作符 使用汇总 ,安卓开发基础面试题 近两年“程序员职业发展”话题,受到越来越多关注,做技术还是转管理?如何保持竞争力?是否要转换新的技术栈? 每个工作三五年的程序员,都正面临着类似的焦虑。 工作三五年,不能像刚入职场凭着一股子冲劲和能吃苦耐劳的精神赢得升职加薪,而转型管理,是很多技术人员的梦想。 那么,技术骨干朝着管理人才前进的过程中,应该如何培养其管理能力呢? compile ‘io.reactivex.rxjava2:rxjava:2.0.7’ // 注:RxJava2 与 RxJava1 不能共存,即依赖不能同时存在 } 3.1 创建. 阅读详情

相关推荐

Android版&Kotlin版RxJava2+Retrofit2+OkHttp3的基础,flutter蓝牙开发

简历首选内推方式,速度快,效率高啊!然后可以在拉钩,boss,脉脉,大街上看看。简历上写道熟悉什么技术就一定要去熟悉它,不然被问到不会很尴尬!做过什么项目,即使项目体量不大,但也一定要熟悉实现原理!不是你负责的部分,也可以看看同事是怎么实现的,换你来做你会怎么做?做过什么,会什么是广度问题,取决于项目内容。但做过什么,达到怎样一个境界,这是深度问题,和个人学习能力和解决问题的态度有关了。大公司看深度,小公司看广度。大公司面试你会的,小公司面试他们用到的你会不会,也就是岗位匹配度。

2301_82241647的博客 879

android--RXJava详细使用篇

人性的背后是白云苍狗,愿我们都能做生活的高手

袁震的博客 4556

MIC卡的OFED驱动安装

 IB网络和OFED驱动安装 IB InfiniBand是一个统一的互联结构,可以处理存储I/O、网络I/O和进程间通信(IPC)。它可以将磁盘阵列、SANs、LANs、服务器和集群服务器进行互联,也可以连接外部网络(比如WAN、VPN、互联网)。设计InfiniBand的目的主要是用于企业数据中心,大型的或小型的。目标主要是实现高的可靠性、可用性、可扩展性和高的性能。Inf

beglorious的专栏 5106

给 Android 开发者的 RxJava 详解

前言 我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava 真是太难用了』,另外更多的人表示:我真的百度了也谷歌了,但我还是想问: RxJava 到底是什么? 鉴于 RxJava 目前这种既火爆又神秘的现状,而我又在一年的使用过程中对 RxJa..

青岛海珊瑚IT学习中心 3377

RU.EXE实用指南:从基础操作到高级调试技巧

本文是RU.EXE(RW Everything)的实用指南,详细介绍了这款硬件调试工具从基础操作到高级技巧的全过程。文章阐述了RU.EXE作为直接读写硬件寄存器、内存和PCI配置空间的强大工具,如何帮助硬件工程师和开发人员高效进行底层系统调试与故障排查,并强调了安全操作的重要性。

weixin_29228203的博客 278

ubuntu20.04下内核源码下载分析

ubuntu 20.04下内核源代码下载,配置编译环境写在前面一、安装VMware Workstation和Ubuntu20.04二、修改apt源合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 写在前面 我最近的科研工作需要使用到对ubun

冰冻三尺非一日之寒 1万+

android——rxjava的使用(连续多个弹窗的处理)

本文介绍项目开发中使用到rxjava的情形,以及详细的代码。RxJava是一个基于Java语言的Reactive Extensions库,它用于实现异步编程和流式处理,通过将事件和数据流以数据序列的形式进行处理,提高了代码的可读性和可维护性。

wy313622821的博客 3542

工业焊缝缺陷检测实战:我用PatchCore在自建数据集上踩过的那些坑

本文详细介绍了PatchCore算法在工业焊缝缺陷检测中的实战应用,包括数据准备、模型调参和阈值优化等关键环节。通过分析焊缝图像的特殊性和anomaly detection技术的优化策略,分享了在自建数据集上提升检测精度的实用经验,为工业质检领域提供有价值的参考方案。

weixin_42624889的博客 398

《给 Android 开发者的 RxJava 详解》笔记

这篇文章是看扔物线的《给 Android 开发者的 RxJava 详解》的笔记,在此仅仅做一个笔记,以便日后查用。RxJava的优势 异步(RxJava本质上是一个实现异步操作的库) 简洁(随着程序逻辑变得越来越复杂,它依然能够保持简洁) API 介绍和原理简析RxJava的观察者模式 RxJava 有四个基本概念:Observable (可观察者,即被观察者)、 Observer (观察者)、

linxi7的博客 731

医学图像配准实战:用Python实现MIND特征提取(附完整代码)

本文详细介绍了MIND(模态无关邻域描述符)在医学图像配准中的应用。通过Python和PyTorch实战,从原理到代码逐步解析了如何提取MIND特征,并利用其对结构而非灰度的感知能力,有效解决CT、MRI等多模态图像的对齐难题,为病灶追踪、手术导航等高级应用提供鲁棒性基础。

263

Python爬虫抓取淘宝商品详情页信息:从入门到高级技术应用

通过本篇博客,我们了解了如何使用Python爬虫抓取淘宝商品详情页的信息,如何使用requests和Selenium抓取静态和动态内容,如何应对淘宝的反爬虫机制,如何将抓取的数据保存到CSV文件等。随着爬虫技术的不断发展,开发者可以根据需要选择合适的工具和技术,如使用分布式爬虫框架提高抓取效率,或者利用OCR技术处理验证码等问题。在进行淘宝爬虫时,需要注意遵循相关法律法规和平台的爬虫政策,避免对平台造成过度的负担或侵犯其合法权益。

2201_76125261的博客 462

安卓rxjava+retrofit,,android基础开发入门

在这里我和身边一些朋友特意整理了一份快速进阶为Android高级工程师的系统且全面的学习资料。涵盖了Android初级——Android高级架构师进阶必备的一些学习技能。附上:我们之前因为秋招收集的二十套一二线互联网公司Android面试真题(含BAT、小米、华为、美团、滴滴)和我自己整理Android复习笔记(包含Android基础知识点、Android扩展知识点、Android源码解析、设计模式汇总、Gradle知识点、常见算法题汇总。

2401_83703797的博客 333

基于UC3842的反激电源的全面深入解析与MATLAB仿真

内置电流检测,可实现电流模式控制,提高系统的动态响应性。多种保护功能,如欠压锁定、过温保护、短路保护等,确保系统的安全可靠运行。宽工作电压范围,适应不同的电源设计需求。简单的外部元件配置,易于实现。UC3842的典型应用包括开关电源、DC-DC转换器和反激式电源等,其稳定性和可靠性在实际应用中得到了广泛验证。

qq_38334677的博客 1086

Android开发Rxjava基础版一

Android开发Rxjava基础版简介RxJava 在 GitHub 主页上的自我介绍是 “a library for composing asynchronous and event-based programs using observable sequences for the Java VM”(一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库)。Rxjava好处a

Sunmy的博客 562

华为od 面试八股文_C语言_01_含答案

华为od 面试八股文_C语言_01_含答案

MISAYAONE的博客 3225

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

MVP + Retrofit + RxJava 搭建一个基础的Android开发框架

1. 搭建一个简易的Android开发结构,避免新手开发时出现代码混乱的问题; 2. 包含一个基础的框架搭建,讲解都在注释里

啥都靠学 3380

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android开发必须会的技能!Android之内存泄漏调试学习与总结,挥泪整理面经

开头 最近有粉丝反应,不想做安卓了,有朋友转到前端了,安卓不行了,问我怎么办? 自从RN,Weex这种跨平台编程语言出来以后,安卓将死的言论总是不绝于耳。随着颇有摧枯拉朽之势Flutter的出现,加之近几年的裁员潮,使这种论调好像更加可信。 恍惚间会让人想到2010年,安卓初兴,一切还是桌面应用开发的天下,当时的语言还集中中JAVA、HTML、MFC、.NET、C#,各个语言为了争夺桌面应用开发第一位,也是拼得你死我活。当时的安卓系统还是方兴未艾,谁也不知道,它会引领着另一个时代。 几年过去了,桌面开发已经

CHAMPION8888的博客 210

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

Android APK开发基础——网络之Android Rxjava

java自带的观察者模式  观察者模式定义了对象之间一对多的的依赖关系,以便一个对象的状态发生改变时,所有依赖于他的对象都能够得到通知,并自动刷新。   一、总结 特点 java自带的观察者模式,其观察者和被观察者是在同一个线程。   使用 1、创建被观察者类和观察者接口 创建被观察者类,它继承自java.util.Observable类; 创建观察者类,它实现java.util....

haobobo710的博客 226

android开发深入浅出,Android开发深入浅出RxJava(一:基础篇)

释放双眼,带上耳机,听听看~!原文链接 http://blog.danlew.net/2014/09/15/grokking-rxjava-part-1/RxJava正在Android开发者中变的越来越流行。唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言。但是一旦你弄明白了,你就会发现RxJava真是太棒了。这里仅仅是帮助你了解RxJava,整个系列共有四篇文章,希望你看完这四...

weixin_35367645的博客 130

快点来白嫖!2020年是做安卓开发人员的绝佳时机

20年是做安卓开发人员的绝佳时机!本文将给你一个从小白到精通最后成为大牛的发展方向! 随着安卓最近的创新与进步,它是现今最热门的技术之一。Kotlin、Android Things等的最新进展,让新手开发人员无法获取正确的信息并朝着一个方向学习发展。 希望本指南能帮助你成为2020年想要成为的安卓开发人员 让我们先从基础开始。 从安卓开发开始 Level 1 1.从Head First Java学习基础Java 2.安装Android Studio 3.在Android Studio设置kotlin - 如

m0_56169789的博客 165

Android RxJava系列一: 基础常用详解

前言 本篇主要介绍Rxjava在 Android 项目中的基础使用和常用方法,旨在给对 RxJava 感兴趣的人一些入门的指引.对Rxjava不熟悉的朋友可以去看我之前写的一篇简单介绍 Android RxJava:基础介绍与使用,下面就来我们一起来看看在项目中如何使用 Rxjava 吧! Rxjava是什么?为什么要用Rxjava? 首先我们要知道Rxjava到底是什么东西?为什么这么多人用它...

Darry_R的博客 478

Android版&Kotlin版RxJava2+Retrofit2+OkHttp3的基础,kotlin开发网站

@Override public void onNext(MovieSubject movieSubject) { mMovieAdapter.setMovies(movieSubject.subjects); mMovieAdapter.notifyDataSetChanged(); } }); 5.加入RxJava的好处: 加入 RxJava 后的网络请求,返回不再是一个 Call ,而是一个 Observable。 在Activity / Fragment 中传入一个Subscriber 建立订阅关

m0_66264169的博客 559

Rxjava筑基篇

Rxjava筑基篇

csuliutao的博客 165

Android 开发 RxJava / RxAndroid 详解

给 Android 开发者的 RxJava 详解 前言 我从去年开始使用 RxJava ,到现在一年多了。今年加入了 Flipboard 后,看到 Flipboard 的 Android 项目也在使用 RxJava ,并且使用的场景越来越多 。而最近这几个月,我也发现国内越来越多的人开始提及 RxJava 。有人说『RxJava 真是太好用了』,有人说『RxJava

Jon.Lo 的专栏 4957

【OpenSource】【RxJava】RxJava

RxJava 是一个响应式编程框架,采用观察者设计模式。

399
上一篇: java基础-数据库JDBC
下一篇: 计算机系统的组成
xh_4215
博客等级 码龄10年 7粉丝 88原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值