Android--EventBus的简单使用

EventBus是一种用于Android的事件发布-订阅总线。
它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。

compile 'org.greenrobot:eventbus:3.0.0'//依赖
定义传递小的消息实体类, 这个类的内容可以自定义,比如定义一个EventBusMsg类
public class EventBusMsg {
	// 类的结构是自定义的,我添加了个 String类型的 name 字段 方便测试.
    public String name;
    public EventBusMsg(String name) {
        this.name = name;
    }
}
订阅事件

订阅事件需要进行三步设置,注册,解注册和定义事件接收函数,比如我在MainActivity中接收事件进行如下操作
在MainActivity 的onCreate()方法中注册EventBus .

@Override
protected void onCreate(Bundle savedInstanceState) {
    EventBus.getDefault().register(MainActivity.this);  // 1. 注册
}

在MainActivity 的onDestroy() 方法中 解注册 EventBus . 一定不要忘记解注册否则可能会造成内存泄漏.

@Override
protected void onDestroy() {
	super.onDestroy();
	EventBus.getDefault().unregister(MainActivity.this); // 2. 解注册
}

定义事件接收函数

public void onMessageEvent(EventBusMsg event) {
        if ("abcd".equals(event.msg)) {
            //这里做事件操作
				
        }
}

发送事件

EventBus.getDefault().post(new EventBusMsg("abcd"));

你可能感兴趣的:(android)