android-GreenRobot:EventBus的isRegistered()方法无法按预期工作
作者:互联网
我正在使用EventBus接收事件.我想检查我的活动是否已经注册,因为我只需要在应用程序的整个生命周期中进行一次注册,但是问题是,即使我来到被注册的活动,EventBus也会再次注册它,并且由于该倍数事件被解雇了.
以下是我的代码示例!
public void registerEventBus(){
if(EventBus.getDefault().isRegistered(this)){
Log.e(TAG, "already registered event bus for "+TAG);
}
else{
EventBus.getDefault().register(this);
Log.e(TAG, "registering event bus for "+TAG);
}
}
另外,找到日志的屏幕快照,您可以在其中看到最初它给了我适当的响应,但是一旦我再次转到该活动,它就会再次注册该订阅者!
注意:请不要建议我注销,因为我希望它始终被注册!
也在github上回答-https://github.com/greenrobot/EventBus/issues/355
解决方法:
如果您的活动被销毁并重新创建(例如,在轮换期间),则您的活动的新实例将在EventBus中注册.
如果您没有在相应的出口点(onPause / onStop / onDestroy)期间注销旧实例,则将一个事件发送到两个活动.
确认将日志更改为
Log.e(TAG, "already registered event bus for " + this);
标签:event-bus,greenrobot-eventbus,android,greenrobot-eventbus-3-0 来源: https://codeday.me/bug/20191118/2026016.html