开头:
如下图就是最后的效果
在第一个界面,内容什么都没有,点击更换英雄到第二个界面输入要发送的消息数据去更新第一个界面即可。(平时我们开发中更改某个用户的信息返回来要马上更新数据可用到…)
例子介绍:
1,先添加EventBus依赖,如下图,在builde.gradle 里的dependencies添加compile 'org.greenrobot:eventbus:3.0.0'
之后在Snyc Now 一下即可(右上角可看到)
2,创建一个Activity(第一个也是用来更新数据后的Activity),
分别在onCreate方法和onDestroy方法里面绑定EventBus和解绑EventBus.
如下图(
//注册EventBus
EventBus.getDefault().register(this);
//解绑EventBus
EventBus.getDefault().unregister(mContext);
)
3、创建一个类(用来获取更新传递数据用的,可根据需求创建)
例如,我这边改变的是英雄类型、英雄姓名、英雄的年龄可以这样写,
如下图(根据构造方法来传递)
4、创建第二个界面(用来发送数据给第一个界面更新)
如下图:根据自己需要改变的变量来传递和构建
//发送要传递的数据
EventBus.getDefault().post(new HeroEventBus(name, age, card));
5、返回第一个界面把发送传递过来的数据接收并处理,如下图,
我们只需要在第一个界面写这个方法即可获取发送过来的数据并处理
@Subscribe(threadMode = ThreadMode.MAIN)
public void onHeroEvent(HeroEventBus heroEventBus) {
if(null!=heroEventBus){
//做些处理
}
}
提示:这里方法名可以随便取,但是传递的对象一定是你构建的对象,否则无效