【问题标题】:Subscribed Events and Polymorphism fire twice订阅的事件和多态性触发两次
【发布时间】:2016-04-14 01:18:10
【问题描述】:

我最近通过切换到 eventbus 更改了我的应用程序,以减少对应用程序其他部分的依赖。现在我看到一个奇怪的问题,我不知道它是否是绿色机器人事件总线的错误或预期功能。

假设我有一个事件 A 和事件 B,那么事件 B 扩展了 A,因为 A 是 A 类型的通用事件。我的助手类订阅了事件 A 和 B,我看到的是它触发 B,那么 A. 除了检查它是否是通用订阅侦听器中的 instanceof 之外,有没有办法在保持我的多态性的同时防止这种情况发生?如果需要在多个类中处理,我将 A 事件用作类型的广播。

谢谢

【问题讨论】:

    标签: java android greenrobot-eventbus greenrobot-eventbus-3.0


    【解决方案1】:

    我知道这是一篇旧帖子,但您可以通过像这样设置事件总线来做到这一点:

     EventBus EVENT_BUS = new EventBus().builder().eventInheritance(false).installDefaultEventBus();
    

    这里的关键是eventInheritance(Boolean) 方法。我也遇到过同样的问题,当我以这种方式构建总线实例时,只有您订阅的事件才会触发。因此,如果您触发事件 B,则只有事件 B 订阅者会触发,而不是事件 A。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-09-10
      • 2019-08-27
      • 2019-03-06
      • 2021-07-14
      相关资源
      最近更新 更多