Android兩種輪詢的實現(xiàn)方法
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>() {
@Override
public void onCompleted() {
}
@Override
public void onError(Throwable e) {
Log.d(TAG, "onError");
}
@Override
public 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機制實現(xiàn)
@Override
public 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?Jetpack結構運用Compose實現(xiàn)微博長按點贊彩虹效果
Compose在動畫方面下足了功夫,提供了豐富的API。但也正由于API種類繁多,如果想一氣兒學下來,最終可能會消化不良,導致似懂非懂。結合例子學習是一個不錯的方法,本文就帶大家邊學邊做,通過實現(xiàn)一個微博長按點贊的動畫效果,學習了解Compose動畫的常見思路和開發(fā)技巧2022-07-07
Android CountDownTimer實現(xiàn)倒計時器
這篇文章主要為大家詳細介紹了Android CountDownTimer實現(xiàn)倒計時效果的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-02-02
Android Fragment實現(xiàn)列表和內容聯(lián)動
這篇文章主要為大家詳細介紹了Android Fragment實現(xiàn)列表和內容聯(lián)動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-01-01
Android開發(fā)導入項目報錯Ignoring InnerClasses attribute for an anonym
今天小編就為大家分享一篇關于Android開發(fā)導入項目報錯Ignoring InnerClasses attribute for an anonymous inner class的解決辦法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧2018-12-12
Android中butterknife的使用與自動化查找組件插件詳解
這篇文章主要給大家介紹了關于Android中butterknife的使用與自動化查找組件插件的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-10-10
Android Jetpack導航組件Navigation創(chuàng)建使用詳解
這篇文章主要為大家介紹了Android Jetpack導航組件Navigation創(chuàng)建及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-11-11

