EventBus是一款针对Android优化的发布/订阅事件总线。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息.优点是开销小,代码更优雅。以及将发送者和接收者解耦。
Android消息传递之组件间传递消息
- 通过动态注册BroadcastReceiver
- 通过监听着模式可以自己设计总线。
EventBus的基本使用
compile ‘org.greenrobot:eventbus:3.0.0’
构造一个实体用来数据的传输(消息携带者)
package com.ljl.evenbusdemo;
/**
* Created by liulian on 2017/3/13.
* Created Why ${why}
*/
public class AnyEventType {
private String message;
public AnyEventType(String mess) {
this.message = mess;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
}
2接受页面来注册:
EventBus.getDefault().register(this);
对应的界面销毁的时候饭注册:
EventBus.getDefault().unregister(this);
在接受数据界面接受数据:
//通过注解来指定执行的线程
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(AnyEventType event) {/* Do something */
Log.e("ljl", "获取到的数据=" + event.getMessage() + "当前线程的名字==" + Thread.currentThread().getName());
twoAt.setText(event.getMessage());
}
其实EventBus的使用还是很简单的。