rxjava
Mars-xq
好记性不如烂笔头。
展开
-
RxJava.contains()方法 判断集合中是否存在某对象,需重写equals和hashCode方法
无原创 2022-07-14 10:15:55 · 104 阅读 · 0 评论 -
RxJava.zip()实现遍历List集合定时发射每条数据
RxJava.zip()实现遍历List集合定时发射每条数据原创 2022-07-14 10:00:23 · 245 阅读 · 0 评论 -
rxjava.distinct 方法去重对象
无原创 2022-07-14 09:49:37 · 102 阅读 · 0 评论 -
rxjava : collectInto、collect、all、any、将集合中元素以逗号连接并返回
参考:RxJava 算术和聚合操作符 tbruyelle / RxPermissions tbruyelle / RxPermissions : 无界面fragmentcollectInto /** * 将集合中元素以逗号连接并返回 * public final <U> Single<U> collectInto( ...原创 2020-04-29 13:36:09 · 975 阅读 · 0 评论 -
rxjava : Completable # andThen 对比 Observable # flatMapCompletable
Completable # andThen ://返回一个新的Completable C,它首先运行此Completable A,然后再运行另一个Completable B。//A / B 没有数据关系,只有执行顺序关系和是否执行关系//A 先执行 , B 后执行//A onError报错不执行B , A onComplete 才执行Bpublic final Completable ...原创 2019-10-17 17:56:55 · 1060 阅读 · 0 评论 -
rxjava 与 kotlin filter/groupBy/(flatten) 对比
filterrxjava :@Testpublic void test3() { ArrayList<Integer> integers = new ArrayList<>(); for (int i = 0; i < 6; i++) { integers.add(i); } Observable.fromIte...原创 2019-10-17 17:52:43 · 446 阅读 · 0 评论 -
rxjava : concat、concatWith、concatArray/merge、mergeWith、mergeArray
串行有序concat 连接最多四个 ObservableSourceconcatWith 与 concatArray 是 concat 的升级版 , 支持连接多个ObservableSource,只是写法不同并行无序merge 连接最多四个 ObservableSourcemergeWith 与 mergeArray 是 merge 的升级版 , 支持连接多个ObservableS...原创 2019-10-16 19:42:03 · 1358 阅读 · 0 评论 -
rxjava : 检测重复,不去重
@Testpublic void checkDuplicate1() { List<String> list = getStringList(); String temp; for (int i = 0; i < list.size() - 1; i++) { temp = list.get(i); for (int j...原创 2019-10-15 16:19:05 · 276 阅读 · 0 评论 -
rxjava : flatMap、flatMapIterable、flatMapMaybe、flatMapCompletable、flatMapSingle
flatMap返回一个Observable,它向源ObservableSource和指定的集合ObservableSource发出的一对值发射指定函数的结果,同时限制对这些ObservableSources的并发预订的最大数量public final <R> Observable<R> flatMap( Function<? super T, ? ex...原创 2019-10-15 11:18:18 · 2139 阅读 · 0 评论 -
rxjava :StartWith
在应用到可观察到的序列之前,StartWith先取一个序列并将其串联起来。StartWith 是用 concat 和 just 处理我们序列的缩减名称。//在应用到可观察到的序列之前,StartWith先取一个序列并将其串联起来。@Testpublic void startWith1() { Observable<Integer> range = Observable....原创 2019-10-14 18:43:42 · 366 阅读 · 0 评论 -
rxjava: concat \ concatWith \ concatEager \ concatDelayError \ concatMap \ concatArray
concat :concatWith :concatEagerconcatDelayErrorconcatMapconcatMapEagerconcatMapDelayErrorconcatMapEagerDelayErrorconcatMapMaybeconcatMapMaybeDelayErrorconcatMapSingle...原创 2019-10-14 17:48:04 · 1063 阅读 · 0 评论 -
rxjava : Completable # andThen
Completable # andThen() 源码:先订阅Completable,再订阅 ObservableSource 、 Publisher 、 SingleSource 、 MaybeSource 、 CompletableSource ,并返回新的Observable、Flowable、Single、Maybe、Completable来自此Completable的【错误事...原创 2019-10-14 16:10:04 · 994 阅读 · 0 评论 -
rxjava : toList 、 toSortedList(排序) 、 toMap
toList : 转为listString[] strs = new String[]{"jack", "ann", "one", "two", "three", "four"};Observable.fromArray(strs) .toList() .subscribe(new SingleObserver<List<String>>...原创 2019-10-12 15:54:24 · 2044 阅读 · 0 评论 -
rxjava : forEach、subscribe
forEach :订阅{@link ObservableSource}并接收每个元素的通知。参数Consumer : 只关心数据结果subscribe :订阅ObservableSource并提供回调以处理其发出的项目。参数Consumer 、 Observer : 关心数据结果、 异常 、 结束等示例一:Disposable forEach1 = Observa...原创 2019-10-12 15:05:14 · 483 阅读 · 0 评论 -
rxjava : mergeArray 、 mergeArrayDelayError
参考:RxJava合并Observable——merge和mergeDelayError操作符示例:public void mergeArray() { Observable[] array = getObservables(); Observable.mergeArray(array) .subscribe(getObserver());}/...原创 2019-10-12 15:04:22 · 1776 阅读 · 0 评论 -
rxjava : concat merge zip
concat:组合多个被观察者一起发送数据,合并后按顺序串行执行merge:组合多个被观察者一起发送数据,合并后按时间线并行执行测试1//将两个发射器合并成一个发射器, 依次发送,发送完一个再接着发送第二个public void concat2() { Observable<Long> observable1 = Observable.intervalRange(0,...原创 2019-09-21 16:06:45 · 757 阅读 · 0 评论 -
rxjava : lambda 与 ObservableTransformer 、compose:
示例一 : 将Integer 转 String// private ObservableTransformer<Integer, String> transformer() {// return new ObservableTransformer<Integer, String>() {// @Override// ...原创 2019-10-08 17:40:31 · 343 阅读 · 0 评论 -
rxjava : 常用的 compose 与 ObservableTransformer
RxJavaUtils 工具类public class RxJavaUtils { public static <T> ObservableTransformer<T, T> applySchedulers() { return new ObservableTransformer<T, T>() { @Over...原创 2019-10-08 17:57:21 · 3926 阅读 · 0 评论 -
rxjava : Flowable 和Backpressure背压
参考:给初学者的RxJava2.0教程(五)同步和异步的区别仅仅在于是否有水缸当上下游工作在同一个线程中时, 这时候是一个同步的订阅关系, 也就是说上游每发送一个事件必须等到下游接收处理完了以后才能接着发送下一个事件.当上下游工作在不同的线程中时, 这时候是一个异步的订阅关系, 这个时候上游发送数据不需要等待下游接收, 为什么呢, 因为两个线程并不能直接进行通信, 因此上游发送的事件...原创 2019-10-09 16:05:39 · 338 阅读 · 0 评论 -
rxjava : 依赖库和相关依赖库
基础库:https://github.com/ReactiveX/RxAndroidhttps://github.com/ReactiveX/RxJava/tree/2.xallprojects { repositories { mavenCentral() //仓库 }}implementation 'io.reactivex.rxjava2:rxa...原创 2019-10-09 16:08:29 · 2141 阅读 · 0 评论 -
rxjava : RxLifeCycle解析
参考:Android技能树 — Rxjava取消订阅小结(2):RxLifeCycleRxLifeCycle 官方demo://Note:Activity需要继承RxAppCompatActivity,fragment需要继承RxFragment// implementation 'com.trello.rxlifecycle3:rxlifecycle:3.1.0'// //...原创 2019-10-10 15:53:28 · 258 阅读 · 0 评论 -
rxjava : 不继承RxAppCompatActivity的情况下使用RxLifeCycle
示例:主要原理用到的是Android的LifeCycle。public class Activity2 extends AppCompatActivity { private static final String TAG = "RxLifecycleAndroid"; @Override protected void onCreate(Bundle savedIn...原创 2019-10-10 16:09:51 · 421 阅读 · 0 评论 -
rxjava : publish / refCount / share / replay
参考:RxJava连接操作符RxJava操作符(09-算术/聚合操作&连接操作)总结:ConnectableObservable 和它的子类以及它们的操作符:ConnectableObservable.connect() — 指示一个可连接的Observable开始发射数据Observable.publish() — 将一个Observable转换为一个可连接的Observa......原创 2019-10-11 16:53:35 · 759 阅读 · 0 评论 -
rxjava: combineLatest 与 表单验证
RxJava2 实战知识梳理(7) - 基于 combineLatest 实现的输入表单验证效果:两个输入框,分别对应用户名和密码,它们的长度要求分别为28和416,如果两者都正确,那么登录按钮的文案变为“登录”,否则显示“用户名或密码无效”。<Button android:layout_width="match_parent" android:layout_hei...原创 2019-10-11 16:55:43 · 218 阅读 · 0 评论 -
rxjava : publish 与 缓存加载
参考:RxJava2 实战知识梳理(8) - 使用 publish + merge 优化先加载缓存,再读取网络数据的请求过程Observable 、 Observer//模拟缓存数据源。private Observable<List<MyData>> getCacheArticle(final long simulateTime) { return Ob...原创 2019-10-11 17:35:09 · 292 阅读 · 0 评论 -
rxjava : compose 与 ObservableTransformer、lift 与 ObservableOperator
compose 与 ObservableTransformer ://操作被观察者(abstract class Observable<T> implements ObservableSource<T> )//将源ObservableSource整体转换//通过对它应用特定的Transformer函数来转换ObservableSource。 //此方法在Obs...原创 2019-10-08 17:37:17 · 2688 阅读 · 0 评论 -
rxjava : 过滤操作符 : throttleFirst、sample/throwttleLast、throttleWithTimeout/debounce
参考:RxJava 1.x 笔记:过滤型操作符RxJava----操作符:过滤操作符目录:throttleWithTimeout 和 debouncethrottleLast 和 samplethrottleWithTimeout 和 debounce每产生一个数据后,如果在规定的间隔时间内没有别的数据产生,就会发射这个数据,否则忽略该数据。throttleWithTimeout ...原创 2019-09-30 18:26:50 · 1460 阅读 · 0 评论 -
rxjava : contains、isEmpty、defaultIfEmpty、switchIfEmpty、all 、 count 、 cast
containscontains:如果发射的数据包含指定值,那就返回true@Testpublic void contains1() { Observable.just(1, 2, 3) .contains(1) .subscribe(new Consumer<Boolean>() { @Ov...原创 2019-09-29 14:12:00 · 1432 阅读 · 0 评论 -
rxjava : ambArray 、ambWith
//当你传递多个Observable给amb操作符时,该操作符只发射其中一个Observable的数据和通知:// 首先发送通知给amb操作符的的那个Observable,// 不管发射的是一项数据还是一个onError或onCompleted通知,amb将忽略和丢弃其它所有Observables的发射物//给定多个Observable,只让第一个发射数据的Observable发射全部数据...原创 2019-09-24 14:40:27 · 1338 阅读 · 0 评论 -
rxjava :观察者与被观察者
rxjava的五组观察者与被观察者ObservableSource/Observer可通过onNext方法发送单条数据或者数据序列,通过onComplete发送完成通知或通过onError发送异常通知,不支持背压策略。public interface ObservableSource<T> { void subscribe(@NonNull Observer<?...原创 2019-09-23 23:42:19 · 636 阅读 · 0 评论 -
rxjava : onErrorReturn / doOnNext / doOnEach / doFinally
private void doTest() { Observable<Integer> observable = Observable.create(new ObservableOnSubscribe<Integer>() { @Override public void subscribe(ObservableEmitter<...原创 2019-09-21 18:19:34 · 1548 阅读 · 0 评论 -
rxjava : reduce / scan
//reduce()与 scan() 操作符的作用都是将发送数据以一定逻辑聚合起来,// 这两个的区别在于 :// scan() 每处理一次数据就会将事件发送给观察者,// reduce() 会将所有数据聚合在一起才会发送事件给观察者。public void scan() { Disposable disposable = Observable.just(1, 2, 3, 4...原创 2019-09-21 17:31:41 · 184 阅读 · 0 评论 -
rxjava : interval、 intervalRange 、timer 、range、 defer
//interval//每隔一段时间就会发送一个事件,这个事件是从0开始,不断增1的数字。//心跳,周期执行private void interval() { Disposable disposable = Observable.interval(1, TimeUnit.SECONDS) .subscribe(new Consumer<Long>(...原创 2019-09-21 16:47:19 · 1345 阅读 · 0 评论 -
rxjava : flatMap concatMap switchMap区别
测试一: 不同线程flatMap:【无序】concatMap:【有序】switchMap:当原始Observable发射一个新的数据时,它将取消订阅并停止监视产生执之前那个数据的Observable,只监视当前这一个@Testpublic void actionSwitchMap1() { List<Integer> list = Arrays.asList(1, ...原创 2019-09-21 14:55:54 · 1770 阅读 · 0 评论 -
rxjava 观察者模式: RxRelay 与 Subject、rxbus
RelayJakeWharton/RxRelayrelay 英 [ˈriːleɪ] 美 [ˈriːleɪ]v. 接转,转送,转发(信息、消息等); 播放,转播(电视或广播讯号);n. 接力赛; 接班的人(或动物); 轮换者; 中继设备Rxrelay:既是一个Observable 也是 一个Consumer的RxJava。使用它的好处就是不必担心事件在onComplete或者onE...原创 2019-05-24 09:54:48 · 2500 阅读 · 0 评论 -
okhttp:应用拦截器和网络拦截器区别
Each interceptor chain has relative merits. 每个拦截器各有自己的优点Application interceptors:应用拦截器Don’t need to worry about intermediate responses like redirects and retries. Are always invoked once, even...原创 2018-04-04 15:27:59 · 3018 阅读 · 0 评论 -
cache-control相关介绍
参考:http cache-control 指令的设置以及意义 Http头介绍:Expires,Cache-Control,Last-Modified,ETag可缓存性public表明响应可以被任何对象(包括:发送请求的客户端,代理服务器,等等)缓存。private表明响应只能被单个用户缓存,不能作为共享缓存(即代理服务器不能缓存它)。no-cache 强制所有缓存...原创 2018-04-04 14:26:29 · 800 阅读 · 0 评论 -
retrofit+rxjava日志输出
参考: Retrofit使用Log拦截器在控制台输出Log 解决华为手机无法输出Debug级别log的问题一、使用okhttp官方Log拦截器导入依赖: compile 'com.squareup.okhttp3:logging-interceptor:3.4.1'使用log拦截器:OkHttpClient.Builder builder = new Ok...原创 2018-04-04 12:54:30 · 1211 阅读 · 0 评论 -
rxjava : repeat 、repeatWhen ,repeatUntil
//repeat :重复多少次,不设置参数则无限//repeat操作符就是对某一个Observable重复产生多次结果,@Testpublic void repeat() { Disposable disposable = Observable.just("A", "B") //这里设置重复次数为3, 如果repeat不带参数默认无限循环。 ...原创 2019-09-24 16:04:42 · 1957 阅读 · 0 评论 -
rxjava : take / takeLast / takeUntil / takeWhile
//take : 取前n个item@Testpublic void take() { Disposable disposable = Observable.just(1, 2, 3, 4, 5) .take(3)// 发射这个被观察者的【前n个item】,这里为取前三个 .subscribe(new Consumer<Integ...原创 2019-09-24 16:37:00 · 1657 阅读 · 1 评论