EventBus 发送事件,接收不到

本地在一个fragment里使用EventBus

该fragment里进行里eventbus的注册和接注册
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
registerEvents();
}
@Override
public void onDestroy() {
super.onDestroy();
unregisterEvents();
}
正常情况下,在其它地方调用
EventBus.getDefault().post(event); 发送事件
在fragment里写事件接收处理函数, 对应event的类型一样
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEvent(LoadAndSyncModuleEvent event) {
}

某些原因,在发送事件时,不能保证fragemnt已经执行了onCreateView,即不一定进行里注册,则需要发送粘性事件,等注册之后fragment才会接收处理
EventBus.getDefault().postSticky(event);
onEvent的写法为:
@Subscribe(sticky = true, threadMode = ThreadMode.MAIN)
public void onEvent(UpdateAllModulesUponLoginEvent event) {
}

发布了15 篇原创文章 · 获赞 1 · 访问量 2680

猜你喜欢

转载自blog.csdn.net/Jianchi0001/article/details/103242321