gpt4 book ai didi

android - 确定 Subject 何时没有订阅者

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:57:16 25 4
gpt4 key购买 nike

我想使用 PublishSubject 创建一个广播系统,后台任务将轮询某个端点并使用此 Subject 定期广播结果。我想在第一个订阅者订阅主题时开始轮询,并在没有更多订阅者时停止轮询。如果有新订阅者订阅,轮询应该恢复。

我看到的唯一一个有点相关的函数是 hasObservers() 但它不太符合我的需要,我想要订阅和取消订阅的回调 - 如果没有说明,我会开始轮询前者,然后如果没有更多的订阅者,我将停止投票;这是如何实现的?

最佳答案

您可以围绕一个可以保持计数的主题创建一个包装器,但听起来您的问题可以用 ConnectableObservable 来解决。考虑一下:

Observable<PollData> pollData = Observable.interval(1, TimeUnit.SECONDS)
.flatMap(i -> api.pollData())
.share();

使用 share() 运算符使该可观察对象成为 ConnectableObservable,它将在第一个观察者订阅它时启动,与后续订阅共享所有发射,并自动停止当最后一个观察者退订时。了解更多信息 here .

关于android - 确定 Subject 何时没有订阅者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44535213/

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