2015-07-01 48 views
2

我已經得到了EventBus事件註冊2級運行的類 - 例如一個和實例。他們都實施了onEvent(SampleEvent event)方法從C處接收。到現在爲止還挺好。如何取消訂閱自身發送的EventBus事件?

但是有一段時間,我需要將SampleEvent從B到A。是否有可能告訴B它不應該處理SampleEvent本身發送,或者我需要做的解決方法,如在SampleEvent設置一個標誌?

+0

爲什麼從B發送事件到A時不使用單獨事件? –

+0

@PeterP這也是一種方法。事情是,它將是完全相同的事件與相同的變量,只有不同的名稱。如果我的想法不可能實現,我會完全按照這種方式。 ;) –

回答

1

你可以嘗試爲〔實施例SampleEventToA延長SampleEvent比你通過使用反射B內部檢查:

if (! event instanceof SampleEventA){ 
    //do things here 
} 

上找到奧托EventBus這個問題:從超級事件的衍生事件也將調用父類的事件的用戶。這將是一個可能的OO解決方案!

https://github.com/square/otto/issues/83

+0

謝謝,好主意,我沒有想到。但不完全是我正在尋找的答案。 –