gpt4 book ai didi

android - 暂停和恢复基于 RxJava 2.X 中的 bool 门的可观察对象?

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:35:39 26 4
gpt4 key购买 nike

假设我有一个处理器,只要按下一个按钮就会发出一个 bool 值,可以将其视为一个切换。

    boolean gateValue = true;
PublishProcessor<Boolean> gate = PublishProcessor.create();
view.onButtonClicked()
.subscribe(new Action1<Void>() {
@Override
public void call(final Void aVoid) {
gate.onNext(gateValue = !gateValue);
}
}));

我想做的是使用门的值来暂停和恢复可观察序列,在暂停时缓冲发出的值。

我已经阅读了很多,虽然在其他语言的响应式扩展中似乎可行,但 RxJava 似乎不支持它。

这是我想要实现的示例,它只是每秒输出一个增量值。当我按下按钮时,我希望输出停止,直到我再次按下它,这应该输出两次按钮按下之间发出的每个项目:

Flowable.interval(1, TimeUnit.SECONDS)
.bufferWhile(gate)
.flatMapIterable(longs -> longs)
.subscribe(new Consumer<Long>() {
@Override
public void accept(final Long aLong) throws Exception {
view.displayTime(aLong);
}
});

有谁知道实现这样的方法的方法吗?

编辑 我已经写了一篇关于如何实现这个的博客文章 https://medium.com/@scottalancooper/pausing-and-resuming-a-stream-in-rxjava-988a0977b771#.gj7fsi1xk

最佳答案

RxJava2Extensions 库中现在有一个运算符 valve() 可以执行请求的行为。

关于android - 暂停和恢复基于 RxJava 2.X 中的 bool 门的可观察对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40616014/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com