Android两种轮询的实现方法

 更新时间:2020年06月19日 10:38:54   作者:青城小语  
这篇文章主要为大家详细介绍了Android两种轮询的实现方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

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机制实现

@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开发之TabActivity用法实例详解

    Android开发之TabActivity用法实例详解

    这篇文章主要介绍了Android开发之TabActivity用法,结合实例形式较为详细的分析了Android扩展Activity实现标签页效果的具体步骤与相关技巧,需要的朋友可以参考下
    2016-03-03
  • Android利用Intent读取和更新通讯录

    Android利用Intent读取和更新通讯录

    这篇文章主要介绍了Android利用Intent读取和更新通讯录的相关资料,通过用户配置文件(user profile)读取和更新该手机的所有联系人信息,需要的朋友可以参考下
    2016-06-06
  • Android实现可复用的选择页面

    Android实现可复用的选择页面

    这篇文章主要为大家详细介绍了Android实现可复用的选择页面,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-06-06
  • Android评分RationBar控件使用详解

    Android评分RationBar控件使用详解

    这篇文章主要为大家详细介绍了Android评分RationBar控件的使用方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-12-12
  • Android组件初始化三种方式小结

    Android组件初始化三种方式小结

    在Android中,组件的初始化通常需要在适当的生命周期方法中进行,本文给大家详细的介绍了初始化的三种方式,文中有详细的代码示例供大家参考,具有一定的参考价值,需要的朋友可以参考下
    2023-08-08
  • Android开发之Gradle 进阶Tasks深入了解

    Android开发之Gradle 进阶Tasks深入了解

    这篇文章主要为大家介绍了Android开发之Gradle 进阶Tasks深入了解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • android 有阻尼下拉刷新列表的实现方法

    android 有阻尼下拉刷新列表的实现方法

    下面小编就为大家分享一篇android 有阻尼下拉刷新列表的实现方法,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
    2018-01-01
  • Android 将网络的Url资源转换为Drawable资源方式

    Android 将网络的Url资源转换为Drawable资源方式

    这篇文章主要介绍了Android 将网络的Url资源转换为Drawable资源方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-03-03
  • Android中WebView的基本配置与填坑记录大全

    Android中WebView的基本配置与填坑记录大全

    webview是一直都很痛恨的控件,你又不能不用,但是一旦大规模测试起来你就发现这个webview真是坑。各种你想不到的错误 在各种奇怪的手机,各种不一样的版本里出现各种想不到的问题。本文就介绍了Android中WebView的基本配置与遇到的一些填坑记录,需要的朋友可以参考下。
    2017-11-11
  • Android View事件机制 21问21答

    Android View事件机制 21问21答

    这篇文章主要介绍了Android View事件机制 21问21答 的相关资料,需要的朋友可以参考下
    2016-02-02

最新评论