1
我有一個類是放置在Eventbus上的對象(一種類型)的發送者和接收者。從接收事件中排除發件人(Greenrobot的事件總線)
有沒有辦法從接收事件中排除發件人?我有多個發件人,只想收到來自其他發件人但來自我自己的事件。
示例:
A將RED放在總線上。接收器C和D獲得事件RED。而且A(因爲它被註冊爲彩色事件)得到RED。這可以避免嗎?所以在這種情況下(A是發送者)A不應該是接收者?
謝謝
我有一個類是放置在Eventbus上的對象(一種類型)的發送者和接收者。從接收事件中排除發件人(Greenrobot的事件總線)
有沒有辦法從接收事件中排除發件人?我有多個發件人,只想收到來自其他發件人但來自我自己的事件。
示例:
A將RED放在總線上。接收器C和D獲得事件RED。而且A(因爲它被註冊爲彩色事件)得到RED。這可以避免嗎?所以在這種情況下(A是發送者)A不應該是接收者?
謝謝
我不認爲greenrobot支持這一點。作爲解決方法,您可以修改Color
以使sender
字段包含對發件人的引用,或者將Color
換行爲另一個具有sender
字段的類。然後,A
事件處理程序方法可以在對事件進行操作之前執行if (event.sender != this)
測試。
我使用發件人的哈希碼,並忽略發件人的接收這些事件。 – Soccertrash
哈希碼不是唯一的,所以你的方法是不安全的。正如我所建議的,您應該只傳遞一個對象的引用。 – cybersam