Just
just可以接收1到10个相同类型的参数
简单的运用just
Observable.just(1,2,3,4,5,6,7,8,9,10).subscribe(new Consumer<Integer>() {
@Override
public void accept(Integer integer) throws Exception {
Log.e(TAG, "accept: "+integer);
}
});
大家还记得subscribe的多个重载方法吗?上面的就是其中的一个。上面中的Consumer()中的accept 功能相当Observer中的onNext()方法,
运行的结果:
07-19 15:19:26.738 19445-19445/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 1
accept: 2
07-19 15:19:26.739 19445-19445/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 3
accept: 4
accept: 5
accept: 6
accept: 7
accept: 8
accept: 9
accept: 10
fromArray
个人觉得fromArray与just 很类似。不同的是fromArray参数是没有个数限制的,而just最多最多只能有10个。所以代码就不粘贴上来了。
interval
间隔多少发送一次请求。返回的是从0开始不断增加1的数。有多个重载方法:参数 :initialDelay:开始执行时的延迟,period :执行后后面数字排放之间的时间间隔,unit :initialDelay与period 的时间单位,scheduler 调节器。
代码如下:
Log.e(TAG, "interval: 开始" );
Observable observable=Observable.interval(8,2,TimeUnit.SECONDS);
observable.subscribe(new Consumer() {
@Override
public void accept(Object o) throws Exception {
Log.e(TAG, "accept: "+o.toString() );
}
});
结果:
07-23 16:01:32.124 3993-3993/myutil.xhh.com.myrxjavatwo E/MainActivity: interval: 开始
07-23 16:01:40.135 3993-4016/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 0
07-23 16:01:42.135 3993-4016/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 1
07-23 16:01:44.135 3993-4016/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 2
07-23 16:01:46.135 3993-4016/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 3
可以用来做计时器。
fromIterable
参数一个Iterable 链接迭代序列, 返回的是序列中的子项。
ArrayList<String> str=new ArrayList<>();
String[] numberStr=new String[]{"a","b","c","d","e","f","g"};
for (int i = 0; i < numberStr.length; i++) {
str.add(numberStr[i]);
}
Observable.fromIterable(str).subscribe(new Consumer<String>() {
@Override
public void accept(String s) throws Exception {
Log.e(TAG, "accept: _______"+s);
}
});
结果:
07-24 11:15:11.557 25231-25231/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: _______a
accept: _______b
accept: _______c
accept: _______d
accept: _______e
accept: _______f
accept: _______g
Timer 在延迟多久后发一个特殊值。(跟Handler的postDelayed类似)
有着多个重载方法,参数:delay :开始执行时的延迟时间,TimeUnit :延迟的单位,Scheduler :调节器。
Log.e(TAG, "test2: timer");
Observable.timer(5,TimeUnit.SECONDS).subscribe(new Consumer<Long>() {
@Override
public void accept(Long aLong) throws Exception {
Log.e(TAG, "accept: "+aLong);
}
});
结果:07-24 14:19:34.322 8034-8034/myutil.xhh.com.myrxjavatwo E/MainActivity: test2: timer
07-24 14:19:39.341 8034-8068/myutil.xhh.com.myrxjavatwo E/MainActivity: accept: 0
本文深入探讨RxJava中关键操作符的使用,包括just、fromArray、interval、fromIterable和Timer。通过实例代码,详细解释了每个操作符的功能及应用场景,如数据流创建、定时任务、序列转换等。
749

被折叠的 条评论
为什么被折叠?



