Android 开发之第三方库之 EventBus
EventBus
EventBus 是一个 Android 端优化的 publish/subscribe 消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。
极大简化了通信操作。
具体实现方法如下:
一.注册:
注册和解绑非常简单
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
二.定义事件类
POJO类
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
三.订阅
使用 注解 @Subscribe;
其中 ThreadMode 提供了四个常量:
- MainThread 主线程
- BackgroundThread 后台线程
- Async 后台线程
- PostThread 发送线程(默认)
@Subscribe (threadMode = ThreadMode.MainThread)
public void handleSomething(MessageEvent event){
doSomethingWith(event);
}
备注:
Event handling methods must be annotated by{@ Subscribe}, must be public, return nothing (void), and have exactly one parameter (the event).
四.发布
在任何地方都可以发布,所有订阅者都可以收到。
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
五.缺点
不能跨进程(process)通信

浙公网安备 33010602011771号