![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Rxjava
文章平均质量分 93
lizubing1992
主要是负责移动端Android开发app
展开
-
Retrofit+Service+自定义Task+GreenDao实现批量上传本地图片功能
最近要完成一个批量上传本地图片的功能1.上传单张的话,只要用简单的Retrofit上传,即可,但是产品要求做到批量上传功能,特地看了一下QQ空间的上传图片功能,并且分析了一下;2.QQ空间上传的时候,有一个进度条在页面展示,点击进去是一个多线程上传过程,这就要数据库保存上传的图片数据,并且多线程上传,在压缩的时候,感觉容易出现OOM;3.而且要保持数据在后台上传,就必须要有一个Service在后台...原创 2018-04-19 18:44:14 · 388 阅读 · 0 评论 -
修改RxCache为Retrofit增加先加载缓存后请求网络功能
RxJava全家桶中的缓存框架RxCache只有缓存时间的设置,并不能做到先加缓存后请求网络的功能,RxCache的基本使用,请看 http://blog.csdn.net/windboy2014/article/details/527111881.认真的查看其源码之后,我们可以修改源码达到缓存功能; RxCache的构建方式和Retrofit类似使用Builder构建provide原创 2016-12-09 14:40:21 · 4845 阅读 · 5 评论 -
RxJava操作符(十)自定义操作符
Rxjava允许我们来自定义操作符来满足我们特殊的需求。如果我们的自定义操作符想要作用到Observable发射出来的数据上,我们就要使用lift操作符;如果我们的自定义操作符想要改变整个的Observable,就需要使用compose操作符了。一、 lift当我们自定义了一个操作符后,使用lift可以将我们自定义的操作符和其它的操作符一起做链式调用,就好像Rxjava原生的操作符转载 2016-05-05 11:28:17 · 1522 阅读 · 0 评论 -
RxJava操作符(九)Connectable Observable Operators
一、Publish首先我们有必要来了解一下什么是Connectable Observable: 就是一种特殊的Observable对象,并不是Subscrib的时候就发射数据,而是只有对其应用connect操作符的时候才开始发射数据,所以可以用来更灵活的控制数据发射的时机。而Publish操作符就是用来将一个普通的Observable对象转化为一个Connectable Observable。转载 2016-05-05 11:27:44 · 1562 阅读 · 0 评论 -
RxJava操作符(八)Aggregate
在这篇文章里我们来了解一下Rxjava的聚合操作符。一、ConcatConcat操作符将多个Observable结合成一个Observable并发射数据,并且严格按照先后顺序发射数据,前一个Observable的数据没有发射完,是不能发射后面Observable的数据的。有两个操作符跟它类似,但是有区别,分别是1.startWith:仅仅是在前面插上一个数据。2.merge转载 2016-05-05 11:26:52 · 917 阅读 · 0 评论 -
RxJava操作符(七)Conditional and Boolean
在这篇文章里我们来了解一下条件和布尔操作符。一、All/AmbAll操作符根据一个函数对源Observable发射的所有数据进行判断,最终返回的结果就是这个判断结果。这个函数使用发射的数据作为参数,内部判断所有的数据是否满足我们定义好的判断条件,如果全部都满足则返回true,否则就返回false。Amb操作符可以将至多9个Observable结合起来,让他们竞争。哪个Obser转载 2016-05-05 11:25:21 · 659 阅读 · 0 评论 -
RxJava操作符(六)Utility
在这篇文章中我们来了解一些辅助操作符,可以让我们更加地方便地处理Observable。一、Delay顾名思义,Delay操作符就是让发射数据的时机延后一段时间,这样所有的数据都会依次延后一段时间发射。在Rxjava中将其实现为Delay和DelaySubscription。不同之处在于Delay是延时数据的发射,而DelaySubscription是延时注册Subscriber。转载 2016-05-05 11:24:23 · 824 阅读 · 0 评论 -
RxJava操作符(五)Error Handling
我们知道Rxjava对错误的处理很方便,就是当有错误出现的时候就会调用Subscriber的onError方法将错误分发出去,由Subscriber自己来处理错误。这种处理的错误有其优点,也有其缺点,就是每个Subscriber都要来定义如何处理错误,如果由100个Subscriber就要定义100遍,如何来统一地处理这些错误呢?这时我们就可以使用Error handling相关的操作符来集中统一转载 2016-05-05 11:21:45 · 869 阅读 · 0 评论 -
RxJava操作符(四)Combining
一、CombineLatestCombineLatest操作符可以将2~9个Observable发射的数据组装起来然后再发射出来。不过还有两个前提:所有的Observable都发射过数据。满足条件1的时候任何一个Observable发射一个数据,就将所有Observable最新发射的数据按照提供的函数组装起来发射出去。Rxjava实现CombineLast操作符可以让我们直接将转载 2016-05-05 11:20:36 · 1053 阅读 · 0 评论 -
RxJava操作符(三)Filtering
在上一篇文章里,我们了解了转化操作符,能将数据转化为我们想要的格式,但是如果数据集合里面有一些我们想要过滤掉的数据怎么办?这时候我们就需要使用过滤操作符了,有点类似于sql里的where,让Observable只返回满足我们条件的数据。一、debouncedebounce操作符就是起到了限流的作用,可以理解为阀门,当你半开阀门的时候,水会以较慢的速度流出来。不同之处就是阀门里的水不转载 2016-05-05 11:18:12 · 849 阅读 · 0 评论 -
RxJava操作符(二)Transforming Observables
在上一篇文章中,我们了解了如何创建Observable,仅仅创建一个Observable可能无法满足一些复杂的场景,所以我们很可能需要将创建的Observable安装某种规则转化一下来发射数据。在这篇文章里我们来了解一下如何来转化Observable一、Buffer顾名思义,Buffer操作符所要做的事情就是将数据安装规定的大小做一下缓存,然后将缓存的数据作为一个集合发射出去。如下图所转载 2016-03-02 14:49:53 · 436 阅读 · 0 评论 -
RxJava操作符(一)Creating Observables
RxJava只是ReactiveX(Reactive Extensions)的一种java实现, ReactiveX是一种响应式扩展框架,有很多种实现,如RxAndroid, RxJS, RxSwift, RxRuby等等。RX采用一种类似于观察者的形式来实现各种功能,跟我们一般的写代码思路差别较大。刚开始接触可能会觉得难以理解,但是一旦掌握地话就会体会到其强大之处。其原理就是创建一个Observ转载 2016-03-02 14:46:36 · 784 阅读 · 0 评论 -
使用RxJava来改进用户体验
编辑推荐:稀土掘金,这是一个高质量的技术干货分享社区,web前端、Android、iOS、设计资源和产品,满足你的学习欲望。一个完美的移动世界永远不会失去连接,而服务端也永远不会返回错误。构建一个很棒的app对于用户来说是幸福的事而对于开发者来说则是痛苦的事。用户点击一个按钮就阻塞了所有操作的时代已经过去了,那是要死人的。让我们来创建一个更好的文本框搜索功能并关注以转载 2016-01-29 10:25:56 · 868 阅读 · 0 评论 -
Retrofit网络请求源码解析
1.使用者的retrofit创建 /** * 初始化Retrofit */ public static void init() { okHttpClient = HttpsUtils.getOKHttpClient(); //设置Retrofit Retrofit client = new Retrofit.Builde...原创 2018-12-14 13:41:44 · 124 阅读 · 0 评论