RxJava 创建操作符 timer与interval

Posted 亚洲小炫风

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了RxJava 创建操作符 timer与interval相关的知识,希望对你有一定的参考价值。

timer操作符既可以延迟执行一段逻辑,也可以间隔执行一段逻辑,但是已经过时了,而是由interval操作符来间隔执行.

timer延迟执行例子:如延迟5秒:

 Observable.timer(5, TimeUnit.SECONDS).subscribe(new Observer<Long>() 
            @Override
            public void onCompleted() 
                LogUtils.d("------->onCompleted");
            

            @Override
            public void onError(Throwable e) 

            

            @Override
            public void onNext(Long aLong) 

            
        );

timer间隔执行:间隔5秒执行

 Observable.timer(0,5,TimeUnit.SECONDS).subscribe(new Subscriber<Long>() 
            @Override
            public void onCompleted() 
            

            @Override
            public void onError(Throwable e) 

            

            @Override
            public void onNext(Long aLong) 
                LogUtils.d("------>along:"+aLong+" time:"+SystemClock.elapsedRealtime());
            
        );


02-19 17:27:35.683 25563-25987/com.rxandroid.test1 D/----->: ------>along:0 time:286032978
02-19 17:27:40.683 25563-25987/com.rxandroid.test1 D/----->: ------>along:1 time:286037976
02-19 17:27:45.683 25563-25987/com.rxandroid.test1 D/----->: ------>along:2 time:286042977
02-19 17:27:50.683 25563-25987/com.rxandroid.test1 D/----->: ------>along:3 time:286047976
02-19 17:27:55.683 25563-25987/com.rxandroid.test1 D/----->: ------>along:4 time:286052976


由于这种间隔执行已经标记为过时,推荐下面的方式:interval操作符:

Observable.interval(0,5,TimeUnit.SECONDS).subscribe(new Observer<Long>() 
            @Override
            public void onCompleted() 

            

            @Override
            public void onError(Throwable e) 

            

            @Override
            public void onNext(Long aLong) 
                LogUtils.d("------>along:"+aLong+" time:"+SystemClock.elapsedRealtime());
            
        );
能达到同样的效果

注意timer与interval都是默认运行在一个新线程上面



以上是关于RxJava 创建操作符 timer与interval的主要内容,如果未能解决你的问题,请参考以下文章

Android函数响应式编程最新RxJava-操作符入门

Rxjava2 Observable的创建详解及实例

RxJava的操作符

知识整理这可能是最好的RxJava 2.x 入门教程

Timer应用之Interval优化

如何在基础活动暂停时暂停rxjava Observable.interval