EventBus--事件总线:观察者模式的拓展

本文介绍了EventBus的使用场景、原理及与其他通信方式的比较。EventBus作为事件总线,提供了解耦组件间通信的解决方案,支持线程模式和优先级设置。相较于本地广播和观察者模式,EventBus具有更高的灵活性和控制性,但需谨慎使用,避免滥用。
摘要由CSDN通过智能技术生成

为何要使用

android应用开发中,经常会涉及Activity,Fragment,Service等不同组件或者模块之间的消息传递。使用传统的方法实现,往往代码不够优雅,而且不同组件和模块之间的耦合严重。随着模块的增多、代码逻辑的不断新增和修改,整个代码的架构就会显得越来越混乱。为了便于理解,下面举例说明:

例1

Activity中的不同的fragment之间需要进行通信,传统的做法是 将activity作为中介,Fragment A通过getActivity()获取宿主的Activity实例进而可以拿到Fragment B的实例,从而向Fragment B发送消息或者获取数据。好一点的做法是在Fragment中编写接口,让宿主Activity实现该接口,从而在Activity中实现不同Fragment之间的数据通信。
如链接:https://blog.csdn.net/yangyin3096/article/details/51476453

例2

多个Activity页面跳转和数据回传的问题,例如Activity A跳转到Activity B,接着跳转到ActivityC,在C中执行一系列操作之后,需要传递数据或者事件给Activity A,传统的做法是进行接口回调,这样不仅增加逻辑复杂性,而且增大页面间的耦合。

为了解决上面的问题,实现组件间和模块间的解耦,我们引入事件总线的概念。

原理

事件总线,是消息或者说事件流动的管道,不同组件和模块之间的消息传递都是

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值