EventBus 3.0 用法(简单篇)

来源:互联网 发布:linux系统排行榜 2017 编辑:程序博客网 时间:2024/05/17 23:50

1.值类
public class LocationEvenBus implements Serializable {
/**
* 封装一个类方便参数传递
*/

public   String  locationStr = null; public  LocationEvenBus(String locationStr){     this.locationStr = locationStr; }

}
2.A 页面 消息发往 B 页面(或者C页面 )
A页面代码如下
String city = null;
city = “北极”
EventBus.getDefault().post(new LoactionEvenBus(city));
3.B页面代码如下
注册
@Override
public void onStart() {
super.onStart();

    EventBus.getDefault().register(this);}

反注册
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
4.B页面接收代码
@Subscribe
public void onEventMainThread(LoactionEvenBus loactionEvenBus){
String loactionstr = loactionEvenBus.locationStr;
Log.e(TAG, “onEventMainThread: “+loactionstr );
}
这里的注解@Subscribe 很关键,表明这个方法为订阅者,这个方法的名字也已经不在重要了(相对于以前的版本来说),在这个方法里,我们实现了UI更新,将用户信息更新出来。
5.总结:这里仅从一个最简单的Demo,了解了一下EventBus是多么的神奇。此处没有网络请求,post方法也是在主线程中,所以默认情况下相应事件方法onEventMainThread也会在主线程中执行。实际上onEventMainThread方法在注解中还是需要添加参数的。

0 0