欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android兩種輪詢的實現(xiàn)方法

 更新時間:2020年06月19日 10:38:54   作者:青城小語  
這篇文章主要為大家詳細介紹了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)微博長按點贊彩虹效果

    Android?Jetpack結構運用Compose實現(xiàn)微博長按點贊彩虹效果

    Compose在動畫方面下足了功夫,提供了豐富的API。但也正由于API種類繁多,如果想一氣兒學下來,最終可能會消化不良,導致似懂非懂。結合例子學習是一個不錯的方法,本文就帶大家邊學邊做,通過實現(xiàn)一個微博長按點贊的動畫效果,學習了解Compose動畫的常見思路和開發(fā)技巧
    2022-07-07
  • Android 圖片Bitmap的剪切的示例代碼

    Android 圖片Bitmap的剪切的示例代碼

    本篇文章主要介紹了Android 圖片Bitmap的剪切的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-01-01
  • Android CountDownTimer實現(xiàn)倒計時器

    Android CountDownTimer實現(xiàn)倒計時器

    這篇文章主要為大家詳細介紹了Android CountDownTimer實現(xiàn)倒計時效果的相關資料,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • Android Fragment實現(xiàn)列表和內容聯(lián)動

    Android Fragment實現(xiàn)列表和內容聯(lián)動

    這篇文章主要為大家詳細介紹了Android Fragment實現(xiàn)列表和內容聯(lián)動效果,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • Android 國際貨幣格式化的示例代碼

    Android 國際貨幣格式化的示例代碼

    本篇文章主要介紹了Android 國際貨幣格式化的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-11-11
  • Android開發(fā)導入項目報錯Ignoring InnerClasses attribute for an anonymous inner class的解決辦法

    Android開發(fā)導入項目報錯Ignoring InnerClasses attribute for an anonym

    今天小編就為大家分享一篇關于Android開發(fā)導入項目報錯Ignoring InnerClasses attribute for an anonymous inner class的解決辦法,小編覺得內容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • 使用Android自定義控件實現(xiàn)滑動解鎖九宮格

    使用Android自定義控件實現(xiàn)滑動解鎖九宮格

    最近由于Android項目需要,要求做一個類似于支付寶的九宮格解鎖組件,下面小編給大家分享了具體實現(xiàn)代碼,需要的朋友可以參考下
    2015-10-10
  • Android中butterknife的使用與自動化查找組件插件詳解

    Android中butterknife的使用與自動化查找組件插件詳解

    這篇文章主要給大家介紹了關于Android中butterknife的使用與自動化查找組件插件的相關資料,文中通過示例代碼介紹的非常詳細,對各位Android開發(fā)者們具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧
    2019-10-10
  • 淺談Android LruCache的緩存策略

    淺談Android LruCache的緩存策略

    這篇文章主要介紹了淺談Android LruCache的緩存策略,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-04-04
  • Android Jetpack導航組件Navigation創(chuàng)建使用詳解

    Android Jetpack導航組件Navigation創(chuàng)建使用詳解

    這篇文章主要為大家介紹了Android Jetpack導航組件Navigation創(chuàng)建及使用詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11

最新評論