EventBus3.0 简单实用分为简单的五个步骤。
- 选择EventBus的版本。
- 创建Event的POJO实体类。
- 在Activity或者Fragment中启动时注册EventBus,停止时取消EventBus。
- 在Activity或者Fragment准备消费2中定义的Event实体类的方法。
- 发送Event.
那我们就看下面的详细步骤:
1,你的开发环境用的Android Studio(如果您用的是Eclipse,只需要下载EventBus相应的jar放到项目的libs下面就可以了)。
在Android Studio的Android项目app中的build.gradle添加EventBus关联,如下所示:
compile 'org.greenrobot:eventbus:3.0.0'
2.定义事件,事件是POJO(plain old Java object) 没有其他特殊的需求。
public final String message ;
public MessageEvent ( String message ) {
this. message = message ;
}
}
3.将Activity或者Fragment作为订阅者,来接受事件。在Android中,Activities 和 Fragments通常根据他们的生命周期来作为订阅者绑定,如下图所示:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
4.准备订阅着,订阅者实现事件处理的方法(也可以称为 “订阅者方法”) 此方法可以被调用当一个事件发出之后.
方法可以用 @Subscribe注解在方法的上面定义. 请注意EventBus 3 的方法名称可以随意选择 (不再像 EventBus 2中方法命名规范).如下:
// This method will be called when a MessageEvent is posted
@Subscribe
public void onMessageEvent(MessageEvent event){
Toast.makeText(getActivity(), event.message, Toast.LENGTH_SHORT).show();
}
// This method will be called when a SomeOtherEvent is posted
@Subscribe
public void handleSomethingElse(SomeOtherEvent event){
doSomethingWith(event);
}
5.发送一个事件,检查步骤4中的方法是否被执行,执行了就说明EventBus成功了。所有当前注册的订阅者(方法)符合这个事件类型的订阅者(方法)都会接受这个事件(方法会被执行)。
EventBus.getDefault().post(new MessageEvent("EventBus first!"));
参考资料如下:http://greenrobot.org/eventbus/