RxJava2.0第五篇 interval 定時任務(心跳包)

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

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章