java - 取消注册订阅者时的 Eventbus (greenrobot) 事件

标签 java android event-bus greenrobot-eventbus

我有一个要求,当所有订阅者都从特定事件中注销时,服务需要能够取消网络请求。我正在使用 Greenrobot EventBus,据我所知,没有内置任何东西可以在有人注销时发送事件。 我在想我可以覆盖 EventBus 的取消注册方法并在调用时发布“UnsubscribedEvent”。然后服务可以监听这个事件,当它收到它时,它可以调用 hasSubscriberForEvent 来检查它是否应该取消请求。这听起来合理吗?或者有人有更好的建议吗?

最佳答案

您在问题中指定的内容应该可以正常工作。

或者,为了避免覆盖库的方法并在不知不觉中搞砸事情的复杂性,您可以这样做:

  1. 保留一个跟踪注册订阅者的计数器
  2. 在有新订阅或取消注册时增加/减少计数器(使用方法)
  3. 在计数器跟踪方法中,检查值计数器是否为 0 并取消网络请求(如果正在进行)

关于java - 取消注册订阅者时的 Eventbus (greenrobot) 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37834988/

相关文章:

java - 如何在 android oreo 中运行持续的后台服务?

java - 单元测试断言 TreeMap 中的对象顺序正确?

java - 意外的电子机器 : 3 in KaliumJNI for Android

Java android EventBus 检测服务器是否发送到手机消息

android - 事件总线 fragment 注销

java - 如何拆分字符串序列并将每个元素转换为 double

java - 翻译这个 Eratosthenes 筛法的 java 实现?

java - 显示照片android代码

安卓:什么错误?

android - 奥托事件总线未从一个 Activity 触发到另一个带有 fragment 的 Activity