EventBus3.0在页面间跳转接收不到消息解决方法

在最近的项目中使用EventBus代替广播,intent传递消息等,大大减少了代码量,提升编码速度,同时整体的代码优雅型也提高了。

使用过程中遇到一些小问题,就是在当前activity使用EventBus.getInstance().post(new Test(“eventbus发送消息成功!”));然后在onCreate中EventBus.getIntsance().register(this);

@Subscribs(threadMode = ThreadMode.MAIN)

public void onMain(Test test){Log.i(“test”,test);} test在打印台打印出来的信息是"eventbus发送消息成功!" 。

如果在另外一个activity,SecondActivity跳转的时候使用EventBus就会接受不到报错No subscribers registered for event class com.zhongxunkeji.app.carillegalrecord.busevent.LoginSuccessEvent,后台花了几个小时终于找到问题的原因,就是跳转到SecondActivity的时候在EventBus注册之前,消息已经发送了,因此才会出现上面的错误。

解决方案:使用粘性发送消息的方式,EventBus.getInstance().postSticky(new Test(“发送成功”));当然在接收的时候指定方式sticky = true;如@Subscribs(Sticky =true),就可以解决上面的问题。粘性发送消息的意思是如果没有接收到消息还会继续发送最新发送过的消息。好了简单的记录一下,因为在网上找了没有对于类似的问题解决方案。。还是希望能够帮助一些遇到这个问题的朋友。。。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值