【发布时间】:2020-04-17 11:30:51
【问题描述】:
我需要在收到事件后的 X 秒内执行一些操作(代表任何数据项 rxJava)。但如果在 X 秒结束前得到另一个事件,则需要在 X 秒内再次执行定时器重置和动作。
换句话说,我们有用户可以与之交互的 UI 元素。在用户不使用此 UI 元素 X 秒后,我们需要执行一些操作。 简单的解决方案可能如下所示:
Disposable disp;
void init() {
final Flowable<Boolean> flowable =
mapDragOrZoomSubject.delay(TIME_X, TimeUnit.SECONDS)
.toFlowable(BackpressureStrategy.DROP);
disp = flowable. ...subscribeWith(ACTION); // <-- action in X seconds of inactivity
}
void gotNewUserInteraction() {
disp.dispose();
init();
}
如何在不基于一些 rxJava 操作符处理和重新创建 Flowable 的情况下做到这一点?
【问题讨论】: