android 生命周期 控制,RxJava 和 RxAndroid 三(生命周期控制和内存优化)

本文详细介绍了RxJava中的一些重要操作符,包括merge、zip、scan、filter、take系列、elementAt、startWith、delay和timer等。通过实例展示了它们的使用方法和效果,帮助读者深入理解RxJava的事件处理和数据流控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:对Rx不了解的朋友可以先看我的第一篇博文 RxJava 和 RxAndroid 一 (基础),是对Rxjava的基本介绍

1、merge操作符,合并观察对象

6c1555302777729326ca3efa0910d9ec.png

19 List list1 = new ArrayList<>() ;

20 List list2 = new ArrayList<>() ;

21

22 list1.add( "1") ;

23 list1.add( "2") ;

24 list1.add( "3") ;

25

26 list2.add( "a") ;

27 list2.add( "b") ;

28 list2.add( "c") ;

29

30 Observable observable1 =Observable.from( list1 ) ;

31 Observable observable2 =Observable.from( list2 ) ;

32

33 //合并数据 先发送observable2的全部数据,然后发送 observable1的全部数据

34 Observable observable =Observable.merge( observable2 , observable1 ) ;

35

36 observable.subscribe(newAction1() {

37 @Override

38 public voidcall(Object o) {

39 System.out.println( "rx-- " +o );

40 }

41 }) ;

42

6c1555302777729326ca3efa0910d9ec.png

运行结果

6c1555302777729326ca3efa0910d9ec.png

2、zip  操作符,合并多个观察对象的数据。并且允许 Func2()函数重新发送合并后的数据

运行效果:从效果图上可以看出,合并两个的观察对象数据项应该是相等的;如果出现了数据项不等的情况,合并的数据项以最小数据队列为准。

6c1555302777729326ca3efa0910d9ec.png

3、scan累加器操作符的使用

运行效果:

第一次发射得到1,作为结果与2相加;发射得到3,作为结果与3相加,以此类推,打印结果:

6c1555302777729326ca3efa0910d9ec.png

4、filter 过滤操作符的使用

运行效果

6c1555302777729326ca3efa0910d9ec.png

5、 消息数量过滤操作符的使用

take :取前n个数据

takeLast:取后n个数据

first 只发送第一个数据

last 只发送最后一个数据

skip() 跳过前n个数据发送后面的数据

skipLast() 跳过最后n个数据,发送前面的数据

效果图

6c1555302777729326ca3efa0910d9ec.png

6、elementAt 、elementAtOrDefault

运行结果

6c1555302777729326ca3efa0910d9ec.png

7、startWith() 插入数据

运行结果

6c1555302777729326ca3efa0910d9ec.png

8、delay操作符,延迟数据发送

9、Timer  延时操作符的使用

使用场景:xx秒后,执行xx

timer 返回一个 Observable , 它在延迟一段给定的时间后发射一个简单的数字0

timer 操作符默认在computation调度器上执行,当然也可以用 Scheduler 在定义执行的线程。

delay 、timer 总结:

相同点:delay 、 timer 都是延时操作符。

不同点:delay  延时一次,延时完成后,可以连续发射多个数据。timer延时一次,延时完成后,只发射一次数据。

10、interval 轮询操作符,循环发送数据,数据从0开始递增

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值