我有一个要求,当所有订阅者都从特定事件中注销时,服务需要能够取消网络请求。我正在使用 Greenrobot EventBus,据我所知,没有内置任何东西可以在有人注销时发送事件。 我在想我可以覆盖 EventBus 的取消注册方法并在调用时发布“UnsubscribedEvent”。然后服务可以监听这个事件,当它收到它时,它可以调用 hasSubscriberForEvent 来检查它是否应该取消请求。这听起来合理吗?或者有人有更好的建议吗?
最佳答案
您在问题中指定的内容应该可以正常工作。
或者,为了避免覆盖库的方法并在不知不觉中搞砸事情的复杂性,您可以这样做:
- 保留一个跟踪注册订阅者的计数器
- 在有新订阅或取消注册时增加/减少计数器(使用方法)
- 在计数器跟踪方法中,检查值计数器是否为
0
并取消网络请求(如果正在进行)
关于java - 取消注册订阅者时的 Eventbus (greenrobot) 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37834988/