“当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。
在应用中的多个地方,控件经常需要根据某个状态来更新他们显示的内容。这种场景常见的解决方式就是定义一个接口,需要关注该事件的控件来实现这个接口。然后事件触发的地方来注册/取消注册这些对该事件感兴趣的控件。
上面的解决方案是没问题的,但是不是理想方案。每个控件实现这个接口,导致这些控件和位置管理器注册强耦合在一起。
随着应用功能的增加,需要监听的事件越来越多,而越来越多的控件需要监听不同的事件,则导致越来越多的控件需要注册到各种事件管理器上。 Event Bus模式 — 也被称为Message Bus或者发布者/订阅者(publisher/subscriber)模式 — 可以让两个组件相互通信,但是他们之间并不相互知晓。” --- 摘自 云在千锋 (http://yunfeng.sinaapp.com/?p=449)
较出名的EventBus有greenrobot开源的EventBus,和square开源的otto。 我提供的解决方案类似于前者,但比前者更轻量且性能更优。 具体的使用方法将慢慢更新到Readme,尽请关注。