EventBus是一款针对 Android 端优化的 publish/subscribe 消息总线。
eventbus arch
主要目的是替代Intent, Handler,BroadCast 在 Fragment,Activity,Service,线程之间传递消息,优点是开销小,代码优雅。将发送者和接收者解耦。
基本用法
引入 eventbus:
compile'de.greenrobot:eventbus:2.4.0'
定义事件:
publicclassMessageEvent{/* Additional fields if needed */}
注册事件接收者:
eventBus.register(this);
发送事件:
eventBus.post(event)
接收消息并处理:
publicvoidonEvent(MessageEvent event){}
注销事件接收:
eventBus.unregister(this);
最后,proguard 需要做一些额外处理:
# EventBus-keepclassmembersclass**{publicvoidonEvent*(**);voidonEvent*(**);}