android 10秒轮询一次,Android实现轮询的三种方式

26ce890a978794adb115cdd2e788ce10.png

本文实例为大家分享了Android实现轮询的方式,供大家参考,具体内容如下

1.通过rxjava实现(代码中使用了Lambda表达式)

private static final int PERIOD = 10 * 1000;

private static final int DELAY = 100;

private Disposable mDisposable;

/**

* 定时循环任务

*/

private void timeLoop() {

mDisposable = Observable.interval(DELAY, PERIOD, TimeUnit.MILLISECONDS)

.map((aLong -> aLong + 1))

.subscribeOn(Schedulers.io())

.observeOn(AndroidSchedulers.mainThread())

.subscribe(aLong -> getUnreadCount());//getUnreadCount()执行的任务

}

//关闭定时任务

if (mDisposable != null) mDisposable.dispose();

2.通过Handler实现

private Handler mHandler = new Handler(Looper.getMainLooper()); // 全局变量

private Runnable mTimeCounterRunnable = new Runnable() {

@Override

public void run() {//在此添加需轮寻的接口

getUnreadCount();//getUnreadCount()执行的任务

mHandler.postDelayed(this, 20 * 1000);

}

};

//关闭定时任务

mHandler.removeCallbacks(mTimeCounterRunnable);

3.使用Java的Timer和TimerTask实现

private static final int PERIOD = 10 * 1000;

private static final int DELAY = 100;

private Timer mTimer;

private TimerTask mTimerTask;

private void timeLoop2(){

mTimer = new Timer();

mTimerTask = new TimerTask() {

@Override

public void run() {

//在此添加轮询

}

};

mTimer.schedule(mTimerTask,DELAY,PERIOD);

}

//关闭定时任务

if (mTimer != null) mTimer.cancel();

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持云海天教程。

原文链接:https://blog.csdn.net/qq_31028313/article/details/100034674

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值