如何避免在同一毫秒内收到两个不同的事件?

时间:2015-09-26 08:50:05

标签: android event-bus otto

在我的应用程序中,我有两个按钮,使用事件总线(Otto)发送带有ID的事件。根据此ID,应用程序将转到不同片段之间的不同导航级别。当用户在同一毫秒点击两个不同的按钮时,可以避免事件总线在相同的毫秒内发送相同的事件(具有不同的ID)。我附上一张图片以显示我的Logcat。

谢谢!

enter image description here

编辑1:

使用同步的onClick方法作为订阅方法,我继续以相同的毫秒接收事件。现在,关于“同步”的神话对我来说已经失败了。 O_O

有些帖子可以解释如何避免非常快速的点击,但是在这里,点击次数是相同的毫秒......很少见,但是你可以看到日志。

我使用我正在使用的方法附加新图像。谢谢! enter image description here

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:0)

是的,将 synchronized 关键字与生成事件的方法(或者使用接收事件的方法)一起使用。

例如:

public synchronized void genEvent(){

}

参见以下相关链接

https://docs.oracle.com/javase/tutorial/essential/concurrency/syncmeth.html

When to use synchronized in Java

Is there an advantage to use a Synchronized Method instead of a Synchronized Block?