android - rxjava retrywhen
本文介绍了android - rxjava retrywhen的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
对rxjava的retrywhen不是很熟悉,想实现下面这样的功能:
每隔5秒查询通话记录最新一条的拨打号码
如匹配某个号码,则执行一个网络请求任务(retrofit),并中断循环
否则不做任何操作,该循环最多持续5次
解决方案
直接使用Interval
进行轮询
subscription=Observable.interval(5, TimeUnit.SECONDS)
.take(5)
.map(new Func1<Long, String>() {
@Override
public String call(Long String) {
//请求号码
}
})
.takeUtil(//号码比对)
.filter(//号码比对)
//两次比对 这个实现不够好
.map(//网络请求)
.subscribe(new Action(){
//获取数据
})
take(5)
只是发射五个数据takeUtil
直到true停止发射数据
这篇关于android - rxjava retrywhen的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文