活动有多长时间在活动总线中?

时间:2015-06-17 14:55:38

标签: java guava

我想@Subscribe一个由ScheduledFuture创建的Runnable中的方法,以便我可以从另一个线程发信号通知是否运行。由于ScheduledFuture将来会创建对象,因此@Subscribe侦听器无法接收我的事件。所以,我想知道一个事件在公交车上待了多久,等待听众接听?是实际的pub-sub同步wrt发送/接收事件还是他们会在超时前进入队列一段时间?

感谢。

1 个答案:

答案 0 :(得分:3)

Guava' EventBus不提供粘性事件。另外,由于EventBus的设计,它并不像扩展它以实现这样一个粘性设计那么简单,因为许多内部都是包私有的(例如,逻辑到发现注册对象上的哪些方法使用Subscribe注释并将它们映射到正确的事件类型。)

我确实认为还有一些其他的库可以提供这样的功能,比如GreenRobot的事件总线(https://github.com/greenrobot/EventBus),但是如果没有引入新的库,你必须构建它更多或者从头开始。

我使用的替代方案是RxJava的Observablesreplay(1)运算符,因此订阅observable将始终立即调用最后一项的订阅回调,但它不是替代品。