有三项活动A
,B
和C
在活动A EventBus
注册onCreate()
,在onDestroy()
注册,方法onEvent(TestEvent e);
活动A
启动活动B
活动B
启动活动C
在活动C
中:
EventBus.getDefault().post(new TestEvent("close A"));
我以这种方式使用EventBus
,效果很好。我的代码有什么问题吗?
答案 0 :(得分:1)
没关系。 EventBus是线程安全的,有很多方法可以使它更容易使用,比如onEventMainThread,onEventBackgroundThread,onEventAsync。
您的代码就是:您的活动即使在后台也会继续获取活动。这没关系(在这种特殊情况下)。但是,如果您将来必须实施其他内容,请牢记这一点:
还有别的东西:你必须绝对确保你的活动只注册了ONCE。因为,如果您注册多次,您将收到与寄存器数量一样多的事件。因此,请修改您的注册表:
if (!EventBus.getDefault().isRegistered(this)) {
EventBus.getDefault().register(this);
}
如果您需要更多详情,请详细了解EventBus here。
但是,如果您遵循这些简单的规则,那么您的活动的生命周期。我经常使用它,我没有遇到问题。