热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Android帝国—四大天王(RxAndroid)3

这里我们继续上一次的分享,在结束的时,因为有点困,所以草草地结束上一次的分享,有关最后拿出来的实例,没有解释最后代码。 先说一下,这段代码由来,也就是他干了些什么,进行一次GET请

《Android帝国—四大天王(RxAndroid) 3》
《Android帝国—四大天王(RxAndroid) 3》

这里我们继续上一次的分享,在结束的时,因为有点困,所以草草地结束上一次的分享,有关最后拿出来的实例,没有解释最后代码。 

《Android帝国—四大天王(RxAndroid) 3》

先说一下,这段代码由来,也就是他干了些什么,进行一次 GET 请求,然后将返回的数据打印在控制台中,这是他任务,我们这里的请求用的 OKHttp 库,这里有关 OKhttp 的使用,随后为大家分享,这里简单地介绍一下如何使用他来创建一次请求。步骤如下,先创建一个客户端  mClient ,然后就开始构建我们的请求,request 包含请求方式,请求地质,请求参数等等,最后用 mclient 发一起 call,call 我们创建好的 request,就完成一次请求。

《Android帝国—四大天王(RxAndroid) 3》

我们把整个请求包裹在(图)一个可观察的对象(Observable)对象中,具体观察啥呢,观察请求返回的数据,观察请求是否完成,观察是否发生错误。这一切都是在蓝色标记的代码中完成的。

黄色部分的代码是观察者(也可以理解为订阅者),就是在我们接收到这些信息后,是定义如何处理这些数据或信息的。

订阅后会返回对象(绿色线标记 code),他是一个订阅凭证,我们拿着凭证可以随时地取消订阅,以避免在我们不需要数据或信息时,可以及时取消订阅。

这里有一个加餐,就是 emitter.setCancellable 发射器方法让我们可以取消订阅时,取消对网络请求。

好有关如何创建事件源,也就是创建一个 observable 。我们现在有了一些了解了吧,我们标准事件源会发送什么(大礼包),数据,错误信息,是否完成发送(结束)和订阅取消的凭证。但是这里有些是我们不需要的信息,我们可能仅会用到一个或两个的信息。那么为了满足大家的不同的口味。

《Android帝国—四大天王(RxAndroid) 3》

RxAndroid 为我们提供许多事件源的类型供您选择,这里 y 轴是按他返回哪些信息进行分类,x 轴按是否有背压进行了分类。

《Android帝国—四大天王(RxAndroid) 3》

知识是相互关联了的,解释这个问题前,我们可能会用到一些相关的知识,那么先对相关知识进行解释一下,以便您更好地理解下面内容。就是 RxAndroid 操作符,那么什么是 RxAndroid 中的操作符,他们干什么用的。事件源发出数据,多数情况我们需要对这些数据进行加工,筛选才能为我们所用。操作符就是帮助我们对数据进行处理和筛选的工具。

《Android帝国—四大天王(RxAndroid) 3》

我们先看第一个场景,有时候我们只需要第一个数据,这时就可以用 first() 来获取,想一想他会返回第一个数据吗?当然不会了,要不也太low了。返回也是可观察的对象,这个对象携带者第一个数据作为他数据源,但是如果返回的是一个数据 。就需要接受到一个 complete 表示是否完成的信息了吧,我们就一个对象,得到了就完成。所以在 RxAndroid2 会返回一个 Single 来代替 Observable ,看表在 Single 中只有 item 和 error 没有了多余 complete,简洁了一定好处,我们其实应该做的不是添加功能浪费用户精力,应该简化功能。

《Android帝国—四大天王(RxAndroid) 3》

当我们只关注异步事件不否结束时候,而不管具体发送了什么数据时候我们就可以用 Completable 来代替传统的 Observable ,然后只需要处理 complete 和 error 对象了。


推荐阅读
  • 目前正在做毕业设计,一个关于校园服务的app,我会抽取已完成的相关代码写到文章里。一是为了造福这个曾经帮助过我的社区,二是写文章的同时更能巩固相关知识的记忆。一、前言在爬取教务系统 ... [详细]
  • 本文分享了一位Android开发者多年来对于Android开发所需掌握的技能的笔记,包括架构师基础、高级UI开源框架、Android Framework开发、性能优化、音视频精编源码解析、Flutter学习进阶、微信小程序开发以及百大框架源码解读等方面的知识。文章强调了技术栈和布局的重要性,鼓励开发者做好学习规划和技术布局,以提升自己的竞争力和市场价值。 ... [详细]
  • android之OkHttpClient通信OkHttpClient用法1:自定义缓存OkHttpClienthttpclientnewOkHttpClient.Builder() ... [详细]
  • Android进阶必学retrofit源码解析,最新Android面试合集
    CalllistRepos(Path(“user”)Stringuser);}创建Retrofit并生成API的实现RetrofitretrofitnewRetro ... [详细]
  • 可能会|表里_深入理解DiskLruCache源码
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了深入理解DiskLruCache源码相关的知识,希望对你有一定的参考价值。作 ... [详细]
  • 在Android Studio中查看SQLite数据库
    原来查看数据库内容,我们一般都是将数据库文件从手机导出,再用专门的软件打开查看,比较繁琐。最近发现了一个比较方便的方法:使用工具stetho。使用方式在gradle中配置depen ... [详细]
  • 自动轮播,反转播放的ViewPagerAdapter的使用方法和效果展示
    本文介绍了如何使用自动轮播、反转播放的ViewPagerAdapter,并展示了其效果。该ViewPagerAdapter支持无限循环、触摸暂停、切换缩放等功能。同时提供了使用GIF.gif的示例和github地址。通过LoopFragmentPagerAdapter类的getActualCount、getActualItem和getActualPagerTitle方法可以实现自定义的循环效果和标题展示。 ... [详细]
  • Android程序员面试宝典自定义控件一分钟实现贴纸功能一分钟实现TextView高亮一分钟实现新手引导页一分钟实现ViewPager卡片一分钟实现加载对话框一分钟实现轮播图一分钟 ... [详细]
  • 注意:以下分析都是基于Retrofit2转载请注明出处:http:blog.csdn.netevan_manarticledetails51320637本节是《Retrofit的使 ... [详细]
  • 对okhttp网络请求的简单介绍publicclassAppextendsApplication{OkHttpClient实例是唯一的,所有的请求都会通过 ... [详细]
  • 欢迎Follow我的GitHub,关注我的CSDN.应用本质上是一个apk包,即一个zip包,可以直接显示其中的内容.通过apk文件,我们可以获知apk的版本信息,so库和第三方 ... [详细]
  • 09 性能优化网络优化
    如何优化一个网络请求呢?相信大家在面试的时候可能会被问到这个问题。今天我其实就是讲述下我知道的一些简单的优化方式,可以帮助大家在面试的过程中得到点基础分数。 ... [详细]
  • feign.RetryableException: Incomplete output stream executing POST
    背景微服务一模块调用另一模块报错feign.RetryableException:IncompleteoutputstreamexecutingPOST翻译:执行 ... [详细]
  • Retrofit+Rxjava网络封装DEMO下载地址框架使用说明一.项目中使用到的三方库com.squareup.retrofit2:retrofit ... [详细]
  • 最新Android开发进阶!Android开发大佬的百度,美团,快手等大厂Offer收割之旅,顺利通过阿里Android岗面试
    开头年前面试了一些公司,目前已经拿到了阿里跟头条的offer。去年我也出去找工作了,面试五家拿到了四家公司的offer。所以在面试方面我应该可以提供一 ... [详细]
author-avatar
手机用户2502878261
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有