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

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

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

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

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

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

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

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

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题