天蓬老师2017-04-18 09:20:04
官方DEMO是在onResume()
注册和onPause()
反註冊. 但是這種機制, 可能不適應大部分的需求場景.
如果考慮在onCreate(...)
注册和onDestroy()
反註冊, 那有一種情況就需要注意了:
如果一個Activity創建了多個實例時, 而EventBus.post(Event)出來的Event本應該只由頂層Activity實例接收, 那麼這是就會出問題.
PHP中文网2017-04-18 09:20:04
在OnCreat裡面註冊,註冊前先判斷註冊過沒。重複註冊會報錯誤。
在Destory裡面反註冊。去過在onPause裡面反註冊,頁面不可見時,發出的刷新廣播或其他廣播,接收不到的。頂層Activity中接收實例之後,你在View中直接寫OnEvent也是可以回應的,所以註冊之前先判斷有沒有註冊過。裡面要用this就行,不用Context。