国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統(tǒng) > Android > 正文

基于Rxjava實現(xiàn)輪詢定時器

2019-12-12 00:46:13
字體:
供稿:網(wǎng)友

本文實例為大家分享了Rxjava實現(xiàn)輪詢定時器的具體代碼,供大家參考,具體內(nèi)容如下

作用

1、實現(xiàn)了延遲若干毫秒后,執(zhí)行next操作,只執(zhí)行一次

2、實現(xiàn)了每隔若干毫秒后,執(zhí)行next操作,可執(zhí)行多次

工具類源碼

/** * Copyright 2015-2018 Hive Box. */package com.fcbox.locker.shrail.utils;import android.support.annotation.NonNull;import com.fcbox.locker.sdk.Locker;import com.fcbox.locker.sdk.log.LogUtils;import java.util.concurrent.TimeUnit;import io.reactivex.Observable;import io.reactivex.Observer;import io.reactivex.android.schedulers.AndroidSchedulers;import io.reactivex.disposables.Disposable;/** * Rxjava2.x實現(xiàn)輪詢定時器. * * @author xuzhuyun */public class RxTimerUtil { private static Disposable mDisposable; /**  * milliseconds毫秒后執(zhí)行next操作  */ public static void timer(long milliseconds, final IRxNext next) {  Observable.timer(milliseconds, TimeUnit.MILLISECONDS)    .observeOn(AndroidSchedulers.mainThread())    .subscribe(new Observer<Long>() {     @Override     public void onSubscribe(@NonNull Disposable disposable) {      mDisposable = disposable;     }     @Override     public void onNext(@NonNull Long number) {      if (next != null) {       next.doNext(number);      }     }     @Override     public void onError(@NonNull Throwable e) {      //取消訂閱      cancel();     }     @Override     public void onComplete() {      //取消訂閱      cancel();     }    }); } /**  * 每隔milliseconds毫秒后執(zhí)行next操作  */ public static void interval(long milliseconds, final IRxNext next) {  Observable.interval(milliseconds, TimeUnit.MILLISECONDS)    .observeOn(AndroidSchedulers.mainThread())    .subscribe(new Observer<Long>() {     @Override     public void onSubscribe(@NonNull Disposable disposable) {      mDisposable = disposable;     }     @Override     public void onNext(@NonNull Long number) {      if (next != null) {       next.doNext(number);      }     }     @Override     public void onError(@NonNull Throwable e) {     }     @Override     public void onComplete() {     }    }); } /**  * 取消訂閱  */ public static void cancel() {  if (mDisposable != null && !mDisposable.isDisposed()) {   mDisposable.dispose();   LogUtils.e("====Rx定時器取消======");  } } public interface IRxNext {  void doNext(long number); }}

調(diào)用

調(diào)用時相應(yīng)的類需要實現(xiàn)IRxNext接口,在doNext方法中實現(xiàn)自己的邏輯即可。另外記得用完后調(diào)用cancel方法取消訂閱。

致謝

原文出處已經(jīng)找不到了,在此感謝原作者。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持武林網(wǎng)。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 峨山| 卢湾区| 清河县| 靖西县| 宁国市| 盐源县| 皋兰县| 阜宁县| 枝江市| 桐乡市| 台前县| 高台县| 浦江县| 崇义县| 九龙县| 花莲县| 瓦房店市| 三门峡市| 巧家县| 台州市| 子洲县| 华池县| 大悟县| 潞西市| 栖霞市| 武安市| 临夏市| 扎兰屯市| 师宗县| 唐山市| 武夷山市| 保亭| 定结县| 合江县| 新津县| 娄底市| 青河县| 汝阳县| 临洮县| 乌兰浩特市| 玉环县|