2015-05-20 39 views
1

我有一個類是放置在Eventbus上的對象(一種類型)的發送者和接收者。從接收事件中排除發件人(Greenrobot的事件總線)

有沒有辦法從接收事件中排除發件人?我有多個發件人,只想收到來自其他發件人但來自我自己的事件。

示例:

A將RED放在總線上。接收器C和D獲得事件RED。而且A(因爲它被註冊爲彩色事件)得到RED。這可以避免嗎?所以在這種情況下(A是發送者)A不應該是接收者?

謝謝

回答

2

我不認爲greenrobot支持這一點。作爲解決方法,您可以修改Color以使sender字段包含對發件人的引用,或者將Color換行爲另一個具有sender字段的類。然後,A事件處理程序方法可以在對事件進行操作之前執行if (event.sender != this)測試。

+0

我使用發件人的哈希碼,並忽略發件人的接收這些事件。 – Soccertrash

+0

哈希碼不是唯一的,所以你的方法是不安全的。正如我所建議的,您應該只傳遞一個對象的引用。 – cybersam