RxJava
windboy2014
个人见解,如有不准确的地方,欢迎一起讨论,企鹅 70637935
展开
-
Retrofit使用
Retrofit:Square提供的开源产品,为Android平台的应用提供一个类型安全的REST客户端https://github.com/square/retrofitRxAndroid:响应式编程框架RxJava针对Android平台的扩展。https://github.com/ReactiveX/RxAndroidhttps://git原创 2016-09-10 17:32:09 · 416 阅读 · 0 评论 -
7.2 Transforming 变换操作 - Buffer/Window/Map/FlatMap/GroupBy/Scan
这个页面展示了可用于对Observable发射的数据执行变换操作的各种操作符。map( ) — 对序列的每一项都应用一个函数来变换Observable发射的数据序列flatMap( ), concatMap( ), and flatMapIterable( ) — 将Observable发射的数据集合变换为Observables集合,然后将这些Observable发射的数据平坦化的原创 2016-10-09 10:46:13 · 299 阅读 · 0 评论 -
7.3 Filtering 过滤操作 - Debounce/Distinct/Filter/Sample/Skip/Take
这个页面展示的操作符可用于过滤和选择Observable发射的数据序列。filter( ) — 过滤数据takeLast( ) — 只发射最后的N项数据last( ) — 只发射最后的一项数据lastOrDefault( ) — 只发射最后的一项数据,如果Observable为空就发射默认值takeLastBuffer( ) — 将最后的N项数据当做单个数据发射skip原创 2016-10-09 10:47:02 · 349 阅读 · 0 评论 -
7.4 Combining 结合操作 - And/StartWith/Join/Merge/Switch/Zip
这个页面展示的操作符可用于组合多个Observables。startWith( ) — 在数据序列的开头增加一项数据merge( ) — 将多个Observable合并为一个mergeDelayError( ) — 合并多个Observables,让没有错误的Observable都完成后再发射错误通知zip( ) — 使用一个函数组合多个Observable发射的数据集合,原创 2016-10-09 10:48:13 · 307 阅读 · 0 评论 -
7.5 Error Handling 错误处理 - Catch/Retry
很多操作符可用于对Observable发射的onError通知做出响应或者从错误中恢复,例如,你可以:吞掉这个错误,切换到一个备用的Observable继续发射数据吞掉这个错误然后发射默认值吞掉这个错误并立即尝试重启这个Observable吞掉这个错误,在一些回退间隔后重启这个Observable这是操作符列表:onErrorResumeNext( ) — 指示Obse原创 2016-10-09 10:50:18 · 296 阅读 · 0 评论 -
7.6 Utility 辅助操作 - Delay/Do/ObserveOn/SubscribeOn/Subscribe
这个页面列出了很多用于Observable的辅助操作符materialize( ) — 将Observable转换成一个通知列表convert an Observable into a list of Notificationsdematerialize( ) — 将上面的结果逆转回一个Observabletimestamp( ) — 给Observable发射的每个数据项添加原创 2016-10-09 10:50:56 · 372 阅读 · 0 评论 -
7.7 Conditional 条件和布尔操作 - All/Amb/Contains/SkipUntil/TakeUntil
这个页面的操作符可用于根据条件发射或变换Observables,或者对它们做布尔运算:条件操作符amb( ) — 给定多个Observable,只让第一个发射数据的Observable发射全部数据defaultIfEmpty( ) — 发射来自原始Observable的数据,如果原始Observable没有发射数据,就发射一个默认数据(rxjava-computation-原创 2016-10-09 10:52:39 · 428 阅读 · 0 评论 -
7.8 Mathematical 算术和聚合操作 - Average/Concat/Count/Max/Min/Sum/Reduce
本页展示的操作符用于对整个序列执行算法操作或其它操作,由于这些操作必须等待数据发射完成(通常也必须缓存这些数据),它们对于非常长或者无限的序列来说是危险的,不推荐使用。rxjava-math 模块的操作符averageInteger( ) — 求序列平均数并发射averageLong( ) — 求序列平均数并发射averageFloat( ) — 求序列平均数并发射av原创 2016-10-09 10:53:14 · 474 阅读 · 0 评论 -
7.9 Async 异步操作 - Start/ToAsync/StartFuture/FromAction/FromCallable/RunAsync
下面的这些操作符属于单独的rxjava-async模块,它们用于将同步对象转换为Observable。start( ) — 创建一个Observable,它发射一个函数的返回值toAsync( ) or asyncAction( ) or asyncFunc( ) — 将一个函数或者Action转换为已Observable,它执行这个函数并发射函数的返回值startFuture(原创 2016-10-09 10:54:54 · 555 阅读 · 0 评论 -
7.1Creating 创建操作 - Create/Defer/From/Just/Start/Repeat/Range
这个页面展示了创建Observable的各种方法。just( ) — 将一个或多个对象转换成发射这个或这些对象的一个Observablefrom( ) — 将一个Iterable, 一个Future, 或者一个数组转换成一个Observablerepeat( ) — 创建一个重复发射指定数据或数据序列的ObservablerepeatWhen( ) — 创建一个重复发射指定原创 2016-10-09 10:44:43 · 378 阅读 · 0 评论 -
7.Operators Categories - 按目录分类的主要操作符列表
ReactiveX的每种编程语言的实现都实现了一组操作符的集合。不同的实现之间有很多重叠的部分,也有一些操作符只存在特定的实现中。每种实现都倾向于用那种编程语言中他们熟悉的上下文中相似的方法给这些操作符命名。本文首先会给出ReactiveX的核心操作符列表和对应的文档链接,后面还有一个决策树用于帮助你根据具体的场景选择合适的操作符。最后有一个语言特定实现的按字母排序的操作符列表。如原创 2016-10-09 10:43:45 · 490 阅读 · 0 评论 -
6.All Operators List - 按字母顺序的全部操作符列表
按字母顺序排列的全部操作符列表aggregate( ) — see reduce( )all( ) — determine whether all items emitted by an Observable meet some criteriaamb( ) — given two or more source Observables, emits all of the items原创 2016-10-09 10:42:40 · 496 阅读 · 0 评论 -
RxJava适合在哪些场景使用呢?
取数据先检查缓存的场景取数据,首先检查内存是否有缓存 然后检查文件缓存中是否有 最后才从网络中取 前面任何一个条件满足,就不会执行后面的final Observable memory = Observable.create(new Observable.OnSubscribe() { @Overridepublic void call(Subscribersuper原创 2016-09-10 17:39:55 · 869 阅读 · 0 评论 -
RxJava,Retrofit,OkHttp3在项目中结合使用
简单暴力:直接上代码,清晰明了代码结构- activitys - MainActivity.Java- fragment - BuyGoodFragment.java- network - factory - MyCustomFactory.java- network - factory - UserResponseConverter.java-原创 2016-09-10 17:42:17 · 1598 阅读 · 0 评论 -
Rxjava的介绍与使用
最近RxJava越来越流行了,在移动端也越来越多的项目开始使用这个框架了!唯一的问题就是上手不容易,尤其是大部分人之前都是使用命令式编程语言。但是一旦你弄明白了,你就会发现RxJava真是太棒了。这里仅仅是帮助你了解RxJava,整个系列共有四篇文章,希望你看完这四篇文章之后能够了解RxJava背后的思想,并且喜欢上RxJava。基础RxJava最核心的两个东西是O原创 2016-04-19 13:16:46 · 4424 阅读 · 4 评论 -
1.ReactiveX - 什么是Rx,Rx的理念和优势
ReactiveXhttp://reactivex.io/intro.htmlRx介绍ReactiveX的历史ReactiveX是Reactive Extensions的缩写,一般简写为Rx,最初是LINQ的一个扩展,由微软的架构师Erik Meijer领导的团队开发,在2012年11月开源,Rx是一个编程模型,目标是提供一致的编程接口,帮助开发者更方便的处理异原创 2016-10-09 10:34:36 · 2487 阅读 · 0 评论 -
2.Observables - 简要介绍Observable的观察者模型
Observable概述在ReactiveX中,一个观察者(Observer)订阅一个可观察对象(Observable)。观察者对Observable发射的数据或数据序列作出响应。这种模式可以极大地简化并发操作,因为它创建了一个处于待命状态的观察者哨兵,在未来某个时刻响应Observable的通知,不需要阻塞等待Observable发射数据。这篇文章会解释什么是响应式编程模原创 2016-10-09 10:35:57 · 1208 阅读 · 0 评论 -
3.Single - 一种特殊的只发射单个值的Observable
Single介绍RxJava(以及它派生出来的RxGroovy和RxScala)中有一个名为Single的Observable变种。Single类似于Observable,不同的是,它总是只发射一个值,或者一个错误通知,而不是发射一系列的值。因此,不同于Observable需要三个方法onNext, onError, onCompleted,订阅Single只需要两原创 2016-10-09 10:39:01 · 1914 阅读 · 0 评论 -
4.Subject - Observable和Observer的复合体,也是二者的桥梁
SubjectSubject可以看成是一个桥梁或者代理,在某些ReactiveX实现中(如RxJava),它同时充当了Observer和Observable的角色。因为它是一个Observer,它可以订阅一个或多个Observable;又因为它是一个Observable,它可以转发它收到(Observe)的数据,也可以发射新的数据。由于一个Subject订阅一个Observable原创 2016-10-09 10:39:45 · 985 阅读 · 0 评论 -
5.Scheduler - 介绍了各种异步任务调度和默认调度器
调度器 Scheduler如果你想给Observable操作符链添加多线程功能,你可以指定操作符(或者特定的Observable)在特定的调度器(Scheduler)上执行。某些ReactiveX的Observable操作符有一些变体,它们可以接受一个Scheduler参数。这个参数指定操作符将它们的部分或全部任务放在一个特定的调度器上执行。使用ObserveOn和Subs原创 2016-10-09 10:41:27 · 2218 阅读 · 0 评论 -
RxCache使用教程
以简单快捷的方式实现Android app实现网络数据缓存并不是一件容易的事就像Sina微博Android客户端实现数据缓存离线阅读微博那样这是一个基于 Retrofit的Reactive缓存库,可用于Android 和Java。能够将你的缓存成需求转成一个接口配置添加JitPack仓库在你的build.gradle文件 (项目根目录下):allprojec原创 2016-09-30 14:39:09 · 10318 阅读 · 4 评论