- 首页 > it技术 > >
EventBus框架集成步骤:
1、AS添加EventBus框架依赖:
dependencies {
compile 'org.greenrobot:eventbus:3.0.0'
}
2、使用步骤:
public class DemoActivity extends FragmentActivity {@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_demo);
//EventBus注册
EventBus.getDefault().register(this);
... ...}
@Override
protected void onDestroy() {
super.onDestroy();
//EventBus取消注册
EventBus.getDefault().unregister(this);
}//EventBus消息处理方法。
@Subscribe(threadMode = ThreadMode.MAIN)
public void onShowMessageEvent(EventBusMessageModel eventBusMessageModel) {String type = eventBusMessageModel.getType();
}}//自定义的消息结构
public class EventBusMessageModel{private String type;
private Object passValue;
public EventBusMessageModel(String type, Object passValue) {
this.type = type;
this.passValue = https://www.it610.com/article/passValue;
}public String getType() {
return type;
}public void setType(String type) {
this.type = type;
}public Object getPassValue() {
return passValue;
}public void setPassValue(Object passValue) {
this.passValue = passValue;
}
}在需要发送的地方直接调用:
EventBus.getDefault().post(new EventBusMessageModel("type","任意Object对象"));
其中EventBusMessageModel是自定义的。根据自己需要设置即可。
3、应用场景:
EventBus框架其主要的作用是解耦。之前Activity与Activity、Activity与Fragment、跨Activity刷新UI等场景下,
消息、数据等的传递用接口等方式。接收方和发起方的耦合性太强。项目前期感觉还不明显,
但当到了项目后期维护阶段。就会特别头疼。
EventBus类似于BroadcastReceiver,但比BroadcastReceiver更灵活。不会受限于Context,Intent;
像一个独立于项目的消息、数据监听响应者。
推荐阅读