当前位置:   article > 正文

org.greenrobot.eventbus.EventBusException: Subscriber class already registered to event class

org.greenrobot.eventbus.eventbusexception: subscriber class

org.greenrobot.eventbus.EventBusException: Subscriber class com.hj.eventbus.Activity2 already registered to event class com.hj.eventbus.BtnEvent

直译: EventBus异常:Activity2已经注册过EventBus。
相关代码:

 class Activity2
 {

    @Override
    public void onStart()
    {
        super.onStart();
        EventBus.getDefault().register(this);
    }

    ......
    onClick()//点击按钮启动Activity3,从Activity3返回Activity2时出现异常
    {
        startActivity(new Intent(Activity2.this, Activity3.class));
    }
    ......

 }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

原因: Activity2创建时会调用onStart方法注册eventbus,Activity3返回Activity2时会再次调用onStart方法,此时会重复注册报异常。
解决方案 一:(省事的方法)

  if (!EventBus.getDefault().isRegistered(this)) 
    {
      EventBus.getDefault().register(this);
    }
  • 1
  • 2
  • 3
  • 4

解决方案 二:改变注册与反注册eventbus的位置。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/251144
推荐阅读
相关标签
  

闽ICP备14008679号