Android实现轮询的三种方式
本文实例为大家分享了Android实现轮询的方式,供大家参考,具体内容如下
1.通过rxjava实现(代码中使用了Lambda表达式)
privatestaticfinalintPERIOD=10*1000; privatestaticfinalintDELAY=100; privateDisposablemDisposable; /** *定时循环任务 */ privatevoidtimeLoop(){ 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实现
privateHandlermHandler=newHandler(Looper.getMainLooper());//全局变量 privateRunnablemTimeCounterRunnable=newRunnable(){ @Override publicvoidrun(){//在此添加需轮寻的接口 getUnreadCount();//getUnreadCount()执行的任务 mHandler.postDelayed(this,20*1000); } }; //关闭定时任务 mHandler.removeCallbacks(mTimeCounterRunnable);
3.使用Java的Timer和TimerTask实现
privatestaticfinalintPERIOD=10*1000; privatestaticfinalintDELAY=100; privateTimermTimer; privateTimerTaskmTimerTask; privatevoidtimeLoop2(){ mTimer=newTimer(); mTimerTask=newTimerTask(){ @Override publicvoidrun(){ //在此添加轮询 } }; mTimer.schedule(mTimerTask,DELAY,PERIOD); } //关闭定时任务 if(mTimer!=null)mTimer.cancel();
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。