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
原因:
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);
}
}
最后,附上Acitvity的生命周期。