使用EvnetBus进行消息传递解析

来源:互联网 发布:js中的换行是什么 编辑:程序博客网 时间:2024/05/20 02:27

上一篇介绍了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类型的话,那就都会被接收,造成逻辑混乱,一点点工作中的经验,希望对大家有所帮助。

0 0
原创粉丝点击