Android怎么使用EventBus多次接收消息


这篇文章主要介绍“Android怎么使用EventBus多次接收消息”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Android怎么使用EventBus多次接收消息”文章能帮助大家解决问题。Fragment中嵌套Fragment,且被嵌套的Fragment是复用的,点击其中item后进入详情,返回后需要回传数据并刷新列表。由于是Fragment之间的相互嵌套,不方便使用Intent返回数据,也不方便使用callback回调来返回数据,所以选择了使用EventBus发送消息,但是发现在列表中使用EventBus发送消息后,Fragment中接收消息的方法会执行多次。发送消息:接收消息:也就是onTestEvent方法会被调用多次,数据也会多次刷新。原因分析因为Fragment是复用的,而EventBus订阅消息也在复用的Fragment中,导致该消息被多次订阅。以ItemFragment为例。复用ItemFragment:因为创建了5个ItemFragment对象,所以EventBus被订阅了5次,所以消息时也会被接收5次。解决方案1、提前在宿主Activit免费云主机域名y中进行EventBus消息订阅,但是该方法不适合多层级的Fragment嵌套,EventBus订阅不成功,也就接收不到消息。2、在Fragment中添加标签,识别当前的Fragment。复用的Fragment中只有索引为2的Fragment才会订阅消息,所以发送消息的时候只有索引为2的Fragment才能接收到消息,也就解决了多次接收消息的问题。3、消息中添加标记。EventBus在post消息的时候,把需要哪一个页面刷新的position发送,接收消息时识别根据索引判断需要哪一个页面刷新。不一定要Fragment的position,只要能唯一识别Fragment就行。关于“Android怎么使用EventBus多次接收消息”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注百云主机行业资讯频道,小编每天都会为大家更新不同的知识点。

相关推荐: node消息队列怎么使用

这篇文章主要介绍“node消息队列怎么使用”,在日常操作中,相信很多人在node消息队列怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”node消息队列怎么使用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧! 什么是消息…

免责声明:本站发布的图片视频文字,以转载和分享为主,文章观点不代表本站立场,本站不承担相关法律责任;如果涉及侵权请联系邮箱:360163164@qq.com举报,并提供相关证据,经查实将立刻删除涉嫌侵权内容。

Like (0)
Donate 微信扫一扫 微信扫一扫
Previous 04/24 19:08
Next 04/24 19:08

相关推荐