您的位置:首页 > 其它

EvnetBus消息传递 优化写法较传统写法更好理解、使用

2016-12-30 16:36 423 查看


首先需要了解基本使用


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;
}
}


这里定义了一个发送消息的事件SEND_MSG,在点击某个view的时候就可以发送事件

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类型的话,那就都会被接收,造成逻辑混乱

所以每次都需要把类型定义一下。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: