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

来源:互联网 发布:南京行知中学地址 编辑:程序博客网 时间:2024/05/18 02:04

首先需要了解基本使用

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类型的话,那就都会被接收,造成逻辑混乱
所以每次都需要把类型定义一下。

0 0
原创粉丝点击