EventBus事件执行多次的原因

最近我在用EventBus去接收来自其他类的通知,用于Dialog内容的显示。当我删除会员的时候,竟然没有效果,删除会员的时候是根据保存的会员ID来删除会员信息的,我怀疑了是不是我的ID值没取到或者是没保存成功,我打印了日志。

这里写图片描述

这里面是有会员ID的,我的事件被执行了多次,而且是毫秒级别的。但是我只点击了一次删除的按钮事件,为什么会执行了三次呢?看时间就都是毫秒级别的,第一次接收到的毫秒时间是955,第二次第三次都是956,这是为什么呢?这有可能是我的EventBus没有解绑的原因?我明明就写了代码的呀。

这里写图片描述

这么奇怪的事情,于是我又打印了日志。

这里写图片描述

这里写图片描述

明明就已经注册成功了,为什么在里面的时候就是false呢?后来我才发现,在setOnDismissListener中不能用直接用this,应该用该类自己的this即DisplayDialog.this.如下图:

这里写图片描述

这里写图片描述

终于解决了EventBus事件执行多次的问题。总结一点就是EventBus可以注册多次,如果你不将之前的销毁解绑的话,就会产生这样的事情,最后要细心看自己写的代码,无论是再Activity,Fragment,Dialog类中,都要进行销毁解绑事件。

谢谢大家,如有不对的地方,请指正。

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值