Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/214.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 从接收事件中排除发送方(Greenrobot&x27;s Eventbus)_Android_Greenrobot Eventbus - Fatal编程技术网

Android 从接收事件中排除发送方(Greenrobot&x27;s Eventbus)

Android 从接收事件中排除发送方(Greenrobot&x27;s Eventbus),android,greenrobot-eventbus,Android,Greenrobot Eventbus,我有一个类,它是放置在Eventbus上的对象(一种类型)的发送者和接收者 是否有办法将发送者排除在事件接收之外?我有多个发件人,只想从其他发件人接收事件,但不想从我自己接收 例如: A把红色挂在公共汽车上。接收器C和D将事件显示为红色。但是A(因为它是为颜色事件注册的)也会变为红色。这能避免吗?那么在这种情况下(A是发送者)A不应该是接收者 谢谢我认为greenrobot不支持这一点。作为一种解决方法,您可以修改Color以具有包含对发件人引用的sender字段,或者在另一个具有sender字

我有一个类,它是放置在Eventbus上的对象(一种类型)的发送者和接收者

是否有办法将发送者排除在事件接收之外?我有多个发件人,只想从其他发件人接收事件,但不想从我自己接收

例如:

A把红色挂在公共汽车上。接收器C和D将事件显示为红色。但是A(因为它是为颜色事件注册的)也会变为红色。这能避免吗?那么在这种情况下(A是发送者)A不应该是接收者


谢谢

我认为greenrobot不支持这一点。作为一种解决方法,您可以修改
Color
以具有包含对发件人引用的
sender
字段,或者在另一个具有
sender
字段的类中包装
Color
。然后,
A
事件处理程序方法可以在对事件执行操作之前执行
if(event.sender!=this)
测试

我使用发件人的哈希代码,并在发件人的接收时忽略这些事件。哈希代码不是唯一的,因此您的方法不安全。正如我所建议的,您应该只传递对对象的引用。