2016-02-17 3 views
2

Я хочу реагировать на событие, если оно находится в определенном временном окне и только один раз. Прямо сейчас, код выглядит следующим образом:RxJava expire subscription

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

Однако, я хочу действие не только отказаться от подписки после того, как событие было потреблено 1x, но если событие не происходит в течение следующего скажут 300мс. Как бы достичь этого?

ответ

1

Просто понял, что оператор take() также позволяет для временного ограничения:

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

должен сделать трюк.