使用EvnetBus进行消息传递解析

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

你可能感兴趣的:(消息传递,EvnetBus)