相信做Android开发的很少有没听说过EventBus的,如果真没听过那只能说明你Out了。EventBus是针对Android平台优化了的发布/订阅事件总线,它的目的是简化Android组件以及线程间的通信,从而使代码更加简洁。
官方给的流程图
简单使用
- 定义事件类型
public class MessageEvent{}
- 订阅者订阅事件
eventBus.register(this)
- 发送事件
eventBus.post(messageEvent)
通过以上三步,就完成一次完整的EventBus使用流程。
其实类似这种发布/订阅的机制在生活中用的也挺多的。比如我晚上定个8点的闹钟,就相当于订阅了一个事件,这个事件就是’8点钟的闹钟’。当第二天8点闹钟响的时候,就相当于发送了事件。我就会收到这个事件,然后执行相应的动作,比如起床。
那么,既然是订阅/发布。肯定就会有订阅,有发布了。这篇文章先根据源码来研究下订阅事件的流程和原理。