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

来源:互联网 发布:詹姆斯对热火数据 编辑:程序博客网 时间:2024/06/14 14:44

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));    }    ...... }

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

  if (!EventBus.getDefault().isRegistered(this))     {      EventBus.getDefault().register(this);    }

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

0 0
原创粉丝点击