很久没有用了 发现 不知道在哪个页面注销了
走同样的路,发现不同的人生
官方DEMO是在onResume()注册和onPause()反註冊. 但是這種機制, 可能不適應大部分的需求場景.
onResume()
onPause()
如果考慮在onCreate(...)注册和onDestroy()反註冊, 那有一種情況就需要注意了:
onCreate(...)
onDestroy()
如果一個Activity創建了多個實例時, 而EventBus.post(Event)出來的Event本應該只由頂層Activity實例接收, 那麼這是就會出問題.
在OnCreat裡面註冊,註冊前先判斷註冊過沒。重複註冊會報錯誤。
在Destory裡面反註冊。去過在onPause裡面反註冊,頁面不可見時,發出的刷新廣播或其他廣播,接收不到的。頂層Activity中接收實例之後,你在View中直接寫OnEvent也是可以回應的,所以註冊之前先判斷有沒有註冊過。裡面要用this就行,不用Context。
誰註冊誰註銷,register和unregister在同一個類別裡面最科學
官方DEMO是在
onResume()
注册和onPause()
反註冊. 但是這種機制, 可能不適應大部分的需求場景.如果考慮在
onCreate(...)
注册和onDestroy()
反註冊, 那有一種情況就需要注意了:在OnCreat裡面註冊,註冊前先判斷註冊過沒。重複註冊會報錯誤。
在Destory裡面反註冊。去過在onPause裡面反註冊,頁面不可見時,發出的刷新廣播或其他廣播,接收不到的。頂層Activity中接收實例之後,你在View中直接寫OnEvent也是可以回應的,所以註冊之前先判斷有沒有註冊過。裡面要用this就行,不用Context。
誰註冊誰註銷,register和unregister在同一個類別裡面最科學