久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術文章
文章詳情頁

Android兩種輪詢的實現方法

瀏覽:5日期:2022-09-23 14:55:43

Android 兩種輪詢的簡單寫法,供大家參考,具體內容如下

public void startPolling() { subscriber = Observable.interval(0, POLLING_INTERVAL, TimeUnit.MILLISECONDS). doOnNext(new Action1<Long>() { @Override public void call(Long aLong) { doPolling(). subscribeOn(Schedulers.io()). observeOn(AndroidSchedulers.mainThread()). subscribe(new Subscriber<String>() {@Overridepublic void onCompleted() {}@Overridepublic void onError(Throwable e) { Log.d(TAG, 'onError');}@Overridepublic void onNext(String response) { handleResponse(response);} }); } }).subscribe();}public void stopPolling() { if (!subscriber.isUnsubscribed()) { subscriber.unsubscribe(); }}private Observable<Param> doPolling() { return Observable.create(new Observable.OnSubscribe<Param>() { @Override public void call(Subscriber<? super Param> subscriber) { //do work subscriber.onNext(response); subscriber.onCompleted(); } });}

在Activity的生命周期里分別調用start和stop方法,解除輪詢綁定,避免內存泄漏。

其它簡單的輪詢方法還有利用handler的postDelay機制實現

@Overridepublic void handleMsg(Message msg) { switch (msg.what) { case MSG_POLLING: doPolling(false); break; ... ... }}private void doPolling(Boolean isFirst) { if(isFirst) { mHandler.removeMessages(MSG_POLLING); mHandler.sendEmptyMessageDelayed(MSG_POLLING, POLLING_INTERVAL); return; } doWork(); //asyn network mHandler.sendEmptyMessageDelayed(MSG_POLLING, POLLING_INTERVAL);}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: Android
相關文章:
主站蜘蛛池模板: 滕州市| 江陵县| 柯坪县| 红安县| 九龙坡区| 高唐县| 威远县| 西乌珠穆沁旗| 顺义区| 龙岩市| 抚顺县| 汉沽区| 日土县| 平度市| 东台市| 玉溪市| 井研县| 内乡县| 黄石市| 湖口县| 同仁县| 朝阳市| 平罗县| 平湖市| 衡东县| 栾城县| 远安县| 察雅县| 广宁县| 两当县| 寿光市| 临泽县| 盈江县| 临漳县| 甘泉县| 大竹县| 华阴市| 清远市| 红安县| 高平市| 吉木萨尔县|