首先需要了解基本使用
EventBus 使用心得及技巧 :http://blog.csdn.net/u010566681/article/details/52119931
EventBus的StickyEvents黏性事件详解及使用说明
http://blog.csdn.net/u010566681/article/details/52512851?locationNum=1&fps=1
EventBus 发现了一种更好 更简单的实现方式:
/**
* 点击事件事件
*/
public class ClickEvent {
public enum Type {
//发送消息
SEND_MSG,
}
public Type type;
public View view;
public Object data;
public ClickEvent(Type type, View view, Object data) {
this.type = type;
this.view = view;
this.data = data;
}
}
EventBus.getDefault().post(new ClickEvent(ClickEvent.Type.SEND_MSG, v, position));
EventBus.getDefault().post(new ClickEvent(ClickEvent.Type.SEND_MSG, v, position));
事件接收
public void onEventMainThread(ClickEvent event) {
switch (event.type) {
case SEND_MSG:
//接收到消息,可以在此进行处理
break;
}
}
因为接收消息是全局的,如果我们发送消息,而不加type类型的话,那就都会被接收,造成逻辑混乱
所以每次都需要把类型定义一下。