Android實現(xiàn)輪詢的三種方式
本文實例為大家分享了Android實現(xiàn)輪詢的方式,供大家參考,具體內(nèi)容如下
1.通過rxjava實現(xiàn)(代碼中使用了Lambda表達式)
private static final int PERIOD = 10 * 1000;private static final int DELAY = 100;private Disposable mDisposable;/** * 定時循環(huán)任務(wù) */private void timeLoop() { mDisposable = Observable.interval(DELAY, PERIOD, TimeUnit.MILLISECONDS) .map((aLong -> aLong + 1)) .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(aLong -> getUnreadCount());//getUnreadCount()執(zhí)行的任務(wù)}//關(guān)閉定時任務(wù)if (mDisposable != null) mDisposable.dispose();
2.通過Handler實現(xiàn)
private Handler mHandler = new Handler(Looper.getMainLooper()); // 全局變量private Runnable mTimeCounterRunnable = new Runnable() { @Override public void run() {//在此添加需輪尋的接口getUnreadCount();//getUnreadCount()執(zhí)行的任務(wù) mHandler.postDelayed(this, 20 * 1000); }};//關(guān)閉定時任務(wù)mHandler.removeCallbacks(mTimeCounterRunnable);
3.使用Java的Timer和TimerTask實現(xiàn)
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);}//關(guān)閉定時任務(wù)if (mTimer != null) mTimer.cancel();
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Intellij IDEA 2019 最新亂碼問題及解決必殺技(必看篇)2. Android Manifest中meta-data擴展元素數(shù)據(jù)的配置與獲取方式3. css3溢出隱藏的方法4. JS繪圖Flot如何實現(xiàn)動態(tài)可刷新曲線圖5. 未來的J2EE主流應(yīng)用框架:對比Spring和EJB36. Android自定義View實現(xiàn)掃描效果7. 關(guān)于HTML5的img標(biāo)簽8. ASP.NET MVC獲取多級類別組合下的產(chǎn)品9. CSS3實現(xiàn)動態(tài)翻牌效果 仿百度貼吧3D翻牌一次動畫特效10. JS+css3實現(xiàn)幻燈片輪播圖
