初入RX,有一个需求不知道咋写? 财富值19

2016-10-29 11:02发布

需求是这样的:我需要开启一个定时器A,当A定时到50秒的时候,开始开启第二个定时器B,A结束,B开始倒数10秒,每一秒发出一个通知:
然后,我用RX这样做了:

Observable<Long> observable =                 Observable                         .timer(50, TimeUnit.SECONDS)                         .repeat(10)                         .delay(1,TimeUnit.SECONDS);          subscription = observable                 .observeOn(AndroidSchedulers.mainThread())                 .subscribe(aLong -> {                     //发通知倒计时                     Log.e("note","flag");                 });

想了半天,好像没啥问题,但是跑起来就有问题了,发现,50秒时挺准的,然后到了第二个定时器,也就是.repeat(10),最后打印的,按照理想,应该是每隔一秒打印,但是实际上相隔了好多秒!。。。
找了半天也没找出啥,难道是我理解错误这几个操作符了?求救大神!

2条回答
axun - 这个人很懒,什么都没留下
1楼 · 2016-10-29 11:41.采纳回答

尚未找出原因,但我找到一个替代版本:

这是一个倒计时,然后,在前面加上延时就可以了:

一周热门 更多>