我正在尝试将对象列表从ActivityTwo发送到MainActivity
我跟踪了eventbus的get started page并从onstart和onstop调用了register()unregister()方法,然后使用EventBus.getDefault().post()发送数据。
MainActivity上,除非我从unregister()中删除onStop()调用,否则不会得到任何消息。
我的问题是,我用得对吗?我应该在unregister()中呼叫onDestroy()吗?如果是,为什么他们从onStop调用它,如果活动停止,它将不会接收任何内容
主要活动

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(YoutubeData event) {

    System.out.print(event);
}
@Override
public void onStart() {
    super.onStart();
    EventBus.getDefault().register(this);
}

@Override
public void onStop() {
    EventBus.getDefault().unregister(this);
    super.onStop();
}

活动二
private void sendYoutubeData() {
        if(youtubeData != null){

          EventBus.getDefault().post(youtubeData);
          finish();
      }

 }

最佳答案

如果您想在mainActivity中接收不可见的事件,则应将register()unregister()分别置于onCreate()onDestroy()中。
如果您的事件没有侦听器,则它将永远不会被接收,除非它是一个粘性事件,在这种情况下,您可以在注册时接收它。有关粘性事件的详细信息here

09-13 12:48