我正在尝试将对象列表从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