Heim  >  Fragen und Antworten  >  Hauptteil

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

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

怪我咯怪我咯2713 Tage vor781

Antworte allen(3)Ich werde antworten

  • 天蓬老师

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

    1. 官方DEMO是在onResume()注册和onPause()反注册. 但是这种机制, 可能不适应大部分的需求场景.

    2. 如果考虑在onCreate(...)注册和onDestroy()反注册, 那有一种情况就需要注意了:

    如果一个Activity创建了多个实例时, 而EventBus.post(Event)出来的Event本应该只由顶层Activity实例接收, 那么这是就会出问题.

    Antwort
    0
  • PHP中文网

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

    在OnCreat里面注册,注册之前先判断注册过没。重复注册会报错。

    在Destory里面反注册。去过在onPause里面反注册,页面不可见时,发出的刷新广播或者其他广播,接收不到的。顶层Activity中接收实例之后,你在View中直接写OnEvent也是可以响应的,所以注册之前先判断有没有注册过。里面要用this就行,不用Context。

    Antwort
    0
  • 天蓬老师

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

    谁注册谁注销,register和unregister在同一个类里面最科学

    Antwort
    0
  • StornierenAntwort