我正在使用Greenrobot EventBus 3.0.0。我有一个A类,它收到了一个Object Event。在A类中,我修改了该对象并将其传递给下一个Activity B.
@Override
protected void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onRowClicked(RequestDTO requestDTO) {
if (requestDTO!= null) {
EventBus.getDefault().post(requestDTO);
startActivity(new Intent(this, ActivityB.class));
}
}
问题是它陷入了无限循环,因为发布者和订阅者的事件相同。如何解决这个问题?
答案 0 :(得分:0)
这看起来很善良。你真的想做什么?您可以在调用事件的第二个帖子之前取消注册当前活动。但是您确定,当您的活动进入时,您的第二项活动将由Android系统准备好吗?对于EventBus回调,情况并非如此。如果我是你,我会传递普通旧意图中的数据。或者,如果您真的需要这种动态 - 您可以使用修改后的onRowClicked
对象手动调用ActivityB的RequestDTO
方法