您的位置:首页 > 其它

使用EvnetBus进行消息传递解析

2016-03-16 19:03 267 查看
上一篇介绍了EventBus是如何进行数据传递的,这一篇介绍一下我们在工作中是如何用EvnetBus进行消息传递的

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


事件接收

public void onEventMainThread(ClickEvent event) {
switch (event.type) {
case SEND_MSG:
//接收到消息,可以在此进行处理
break;
}
}


因为接收消息是全局的,如果我们发送消息,而不加type类型的话,那就都会被接收,造成逻辑混乱,一点点工作中的经验,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: