基于Rxjava实现轮询定时器
本文实例为大家分享了Rxjava实现轮询定时器的具体代码,供大家参考,具体内容如下
作用
1、实现了延迟若干毫秒后,执行next操作,只执行一次
2、实现了每隔若干毫秒后,执行next操作,可执行多次
工具类源码
/**
*Copyright2015-2018HiveBox.
*/
packagecom.fcbox.locker.shrail.utils;
importandroid.support.annotation.NonNull;
importcom.fcbox.locker.sdk.Locker;
importcom.fcbox.locker.sdk.log.LogUtils;
importjava.util.concurrent.TimeUnit;
importio.reactivex.Observable;
importio.reactivex.Observer;
importio.reactivex.android.schedulers.AndroidSchedulers;
importio.reactivex.disposables.Disposable;
/**
*Rxjava2.x实现轮询定时器.
*
*@authorxuzhuyun
*/
publicclassRxTimerUtil{
privatestaticDisposablemDisposable;
/**
*milliseconds毫秒后执行next操作
*/
publicstaticvoidtimer(longmilliseconds,finalIRxNextnext){
Observable.timer(milliseconds,TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(newObserver(){
@Override
publicvoidonSubscribe(@NonNullDisposabledisposable){
mDisposable=disposable;
}
@Override
publicvoidonNext(@NonNullLongnumber){
if(next!=null){
next.doNext(number);
}
}
@Override
publicvoidonError(@NonNullThrowablee){
//取消订阅
cancel();
}
@Override
publicvoidonComplete(){
//取消订阅
cancel();
}
});
}
/**
*每隔milliseconds毫秒后执行next操作
*/
publicstaticvoidinterval(longmilliseconds,finalIRxNextnext){
Observable.interval(milliseconds,TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe(newObserver(){
@Override
publicvoidonSubscribe(@NonNullDisposabledisposable){
mDisposable=disposable;
}
@Override
publicvoidonNext(@NonNullLongnumber){
if(next!=null){
next.doNext(number);
}
}
@Override
publicvoidonError(@NonNullThrowablee){
}
@Override
publicvoidonComplete(){
}
});
}
/**
*取消订阅
*/
publicstaticvoidcancel(){
if(mDisposable!=null&&!mDisposable.isDisposed()){
mDisposable.dispose();
LogUtils.e("====Rx定时器取消======");
}
}
publicinterfaceIRxNext{
voiddoNext(longnumber);
}
}
调用
调用时相应的类需要实现IRxNext接口,在doNext方法中实现自己的逻辑即可。另外记得用完后调用cancel方法取消订阅。
致谢
原文出处已经找不到了,在此感谢原作者。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
6 保研的祝福语简短
10 年轻20岁祝福语简短
11 朋友结婚祝福语信息简短
12 女孩婚礼贺卡祝福语简短
13 30段点歌简短祝福语
14 虎年春节祝福语图文简短
15 写给后妈祝福语大全简短
16 简短回复生日祝福语
17 校长送毕业祝福语简短
18 毕业立体贺卡祝福语简短