2016-02-17 95 views
2

我想对一个事件做出反应,如果它在一定的时间窗口内且只有一次。眼下,代码如下:RxJava到期订阅

mServiceRestartEmitter.take(1).subscribe(action); 

但是,我想要的动作不仅退订后,该事件被消耗掉1个,而且如果事件没有下再说300毫秒之内发生的事情。 如何实现这一目标?

回答

1

就意识到take()运营商也允许时间限制:

mServiceRestartEmitter.take(500, TimeUnit.MILLISECONDS).take(1).subscribeOn(Schedulers.io()).subscribe(action); 

应该做的伎俩。