【发布时间】:2017-05-03 17:03:56
【问题描述】:
我有两个侦听器在将事件发布到 eventbus 时接受相同的参数。但即使接受相同的参数,这些侦听器的行为也会不同。
public class EventListener1 {
@Subscribe
public void executeJob(jobVO jobVO ) {
//logic goes here
}
}
public class EventListener2 {
@Subscribe
public void cancelJob(jobVO jobVO ) {
//logic goes here but different
}
}
EventBus eventBus = new EventBus();
eventBus.register(new EventListener1());
eventBus.register(new EventListener2());
用户按下执行按钮并想要触发EventListener1 就像取消作业一样明智。
用于执行作业
JobVO j=new JobVO();
j.setAction("executeJob");
etc...
eventBus.post(j);
取消作业
JobVO j=new JobVO();
j.setAction("cancelJob");
etc...
eventBus.post(j);
我的问题是如何在将事件发布到 eventbus 时触发特定的侦听器,否则它会同时调用两个侦听器?
【问题讨论】:
-
你不能使用一些特定的子类,比如
class ExecuteJob extends JobVO等吗? -
@RC。我们不能使用 JobVO 作为客户端服务器通信吗?在 Web 层中,我们从用户输入创建 jobVO 并传递到服务器。我知道如果使用子类这很容易。我只想知道有没有其他方法可以代替使用子类。谢谢。
-
一个事件监听器和一个开关将起作用