首頁  >  問答  >  主體

android - EventBus注销是在传值的页面注销还是接收值的页面注销?

很久没有用了 发现 不知道在哪个页面注销了

怪我咯怪我咯2713 天前780

全部回覆(3)我來回復

  • 天蓬老师

    天蓬老师2017-04-18 09:20:04

    1. 官方DEMO是在onResume()注册和onPause()反註冊. 但是這種機制, 可能不適應大部分的需求場景.

    2. 如果考慮在onCreate(...)注册和onDestroy()反註冊, 那有一種情況就需要注意了:

    如果一個Activity創建了多個實例時, 而EventBus.post(Event)出來的Event本應該只由頂層Activity實例接收, 那麼這是就會出問題.

    回覆
    0
  • PHP中文网

    PHP中文网2017-04-18 09:20:04

    在OnCreat裡面註冊,註冊前先判斷註冊過沒。重複註冊會報錯誤。

    在Destory裡面反註冊。去過在onPause裡面反註冊,頁面不可見時,發出的刷新廣播或其他廣播,接收不到的。頂層Activity中接收實例之後,你在View中直接寫OnEvent也是可以回應的,所以註冊之前先判斷有沒有註冊過。裡面要用this就行,不用Context。

    回覆
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:20:04

    誰註冊誰註銷,register和unregister在同一個類別裡面最科學

    回覆
    0
  • 取消回覆