订阅和发布来自同一类的相同事件
问题描述:
我正在使用Greenrobot EventBus 3.0.0。我有一个类A和它接收到的对象类Event.In Al改性该对象并将其传递到下一个活动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));
}
}
的问题是,它停留在无限循环,因为发布者和订阅相同event.How解决这个问题?
答
这看起来很好笑。你真的想做什么?您可以在调用事件的第二篇文章之前取消注册当前活动。但是,你确定,你的第二项活动将由Android系统准备,当你的活动进入时? EventBus回调并非如此。如果我是你,我会以普通的旧意图传递数据。或者,如果您真的需要这种动态 - 您可以手动调用您的ActivityB的onRowClicked
方法,修改后的RequestDTO
对象
发布另一种类型的事件,而不是同一个事件。这种方法有什么问题? – azizbekian