interval :返回一个流,每个指定的时间间隔都发射一个序号。
可以使用在例如股票k线图、实时数据等应用环境
首先来看一下原方法:
public static Flowable<Long> interval(long period, TimeUnit unit) { return
interval(period, period, unit, Schedulers.computation()); }
从上面的方法中我们看出,interval在Flowable.java
类中很多重载方法,我们可以根据不同的需求调用不同的方法即可,以下是对interval的常用方法:
一、定时调用
//定时2秒调用一次 Flowable.interval(2,
TimeUnit.SECONDS).observeOn(AndroidSchedulers.mainThread()) .subscribe(new
Consumer<Long>() { @Override public void accept(@NonNull Long aLong) throws
Exception { Log.e("------>",(aLong++)+""); } }); 输出日志: 09-22 03:13:36.785
4434-4434/jy.com.rxjava2 E/------>: 0 09-22 03:13:38.785
4434-4434/jy.com.rxjava2 E/------>: 1 09-22 03:13:40.785
4434-4434/jy.com.rxjava2 E/------>: 2 09-22 03:13:42.785
4434-4434/jy.com.rxjava2 E/------>: 3 09-22 03:13:44.785
4434-4434/jy.com.rxjava2 E/------>: 4 09-22 03:13:46.785
4434-4434/jy.com.rxjava2 E/------>: 5 09-22 03:13:48.785
4434-4434/jy.com.rxjava2 E/------>: 6 二、带有延迟 的定时任务;如下,先 延迟 10秒 ,在执行2s定时任务
public static void interval2(final TextView textView) { Log.e("======>",
"start"); Flowable.interval(10, 2, TimeUnit.SECONDS)
.observeOn(AndroidSchedulers.mainThread()) .subscribe(new Consumer<Long>() {
@Override public void accept(@NonNull Long aLong) throws Exception {
Log.e("======>",(aLong++)+""); } }); } 输出日志: 09-22 05:00:32.965
11640-11640/jy.com.rxjava2 E/======>: start 09-22 05:00:43.015
11640-11640/jy.com.rxjava2 E/======>: 0 09-22 05:00:45.015
11640-11640/jy.com.rxjava2 E/======>: 1 09-22 05:00:47.015
11640-11640/jy.com.rxjava2 E/======>: 2 09-22 05:00:49.015
11640-11640/jy.com.rxjava2 E/======>: 3 09-22 05:00:51.015
11640-11640/jy.com.rxjava2 E/======>: 4 09-22 05:00:53.015
11640-11640/jy.com.rxjava2 E/======>: 5 09-22 05:00:55.015
11640-11640/jy.com.rxjava2 E/======>: 6
热门工具 换一换