时间:2021-05-20
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机制实现
@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);}以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
Android手机防止休眠的两种实现方法实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明。一种是在代码里面修改LayoutParams的标
Android实现按两次返回键退出程序(两种方法)第一种方法://是否退出程序privatestaticBooleanisExit=false;//定时触发器p
在Android实现没有标题栏的方法有两种:在代码中添加requestWindowFeature(Window.FEATURE_NO_TITLE);在清单文件A
Android打电话有两种实现方法:第一种方法,拨打电话跳转到拨号界面。源代码如下:Intentintent=newIntent(Intent.ACTION_D
本文实例讲述了Android编程实现屏幕禁止休眠的方法。分享给大家供大家参考,具体如下:实现这一功能的方法有两种,一种是在Manifest.xml文件里面声明,