当前位置:   article > 正文

AndroidStudio报错:Caused by: org.greenrobot.eventbus.EventBusException:Subscriber class...

caused by: org.greenrobot.eventbus.eventbusexception: subscriber class com.e

AndroidStudio报错如下:

Caused by: org.greenrobot.eventbus.EventBusException: 
Subscriber class com.money.book.ui.detail.DetailActivity 
already registered to event class com.money.book.bean.event.InfoRefreshNotifyEvent
  • 1
  • 2
  • 3

原因:
Subscriber class … already registered to event…就是说接收者类已经被注册为事件类了。
Android使用eventbus去注册事件的时候,在没有注销的情况下,一个页面只能注册一次eventbus。
AndroidStudio报以上错误,说明eventbus已经注册过了,不能重复注册。
解决:
注意看eventbus有没有在一个页面重复注册多次。
特别是eventbus是否在onStart()方法中注册,因为onStart()方法会在onCreate()后调用一次,在onRestart()后又调用一次,所以会出现eventbus重复注册的情况。如果非要在onStart()中注册eventbus,可以加上对eventbus是否注册的判断。

	@Override
    protected void onStart() {
        super.onStart();
        if(!EventBus.getDefault().isRegistered(this)){//是否注册eventbus的判断
            EventBus.getDefault().register(this);
        }
    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

最后,附上Acitvity的生命周期。
在这里插入图片描述

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

闽ICP备14008679号