订阅和发布来自同一类的相同事件

问题描述:

我正在使用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解决这个问题?

+0

发布另一种类型的事件,而不是同一个事件。这种方法有什么问题? – azizbekian

这看起来很好笑。你真的想做什么?您可以在调用事件的第二篇文章之前取消注册当前活动。但是,你确定,你的第二项活动将由Android系统准备,当你的活动进入时? EventBus回调并非如此。如果我是你,我会以普通的旧意图传递数据。或者,如果您真的需要这种动态 - 您可以手动调用您的ActivityB的onRowClicked方法,修改后的RequestDTO对象