我有一個BaseFragment
類註冊/註銷自己EventBus
在onStart()/onStop()
,和幾個子類繼承它(FragmentA
,FragmentB
...)。基類沒有任何方法註釋@Subscribe
和FragmentA
都沒有,但我希望它無論如何註冊如果我將來添加一些。EventBus:註冊沒有任何@Subscribe標註的方法
如果我註冊一個對象,沒有任何@Subscribe
註解的方法,我只是沒有什麼事情發生,使用SquareUp's Otto時一樣,但EventBus拋出異常:
org.greenrobot.eventbus.EventBusException: Subscriber class com.company.app.FragmentA and its super classes have no public methods with the @Subscribe annotation
爲什麼拋出一個異常?我的意思是,它並不妨礙應用程序運行。
是否將register()/unregister()
呼叫BaseFragment
換成醜陋try ... catch
或者是否有更簡潔的解決方法?
您與@Subscribe註釋方法必須是公共,檢查所有這些。 –
@oguzhand如果仔細閱讀,可以看到我沒有使用'@ Subscribe'註釋的方法。 – Flawyte
你可以在基礎片段中實現一個虛擬註釋方法嗎? – lelloman