为啥用到了EventBus?

来源:互联网 发布:加索尔数据 编辑:程序博客网 时间:2024/05/01 08:27

到今天,速运3.5告一段落了,反正我这边是没啥Bug了,该好好的来个总结,这一次是在做项目的时候遇到这么一个需求,A1、A2、A3。。。--->B--->C,同时B--->C , C--->B。其中 B要将数据带回去C中,如果仅仅只是C--->B   然后B--->C ,那么直接用startActivityForResult()即可。但是涉及到其他的页面用StartActivityForResult()是不能实现需求的。


来看一下我在代码里面是如何实现的吧。
  
A1,A2,A3...触发事件都是跳转到B。
      故A1,A2,A3中直接使用Intent进行跳转到B即可。
  
然后B--->C   B需要把数据传给C 
     所以B是发送方, 发送即可
EventBus.getDefault().post(mCBean);

     C为接收方,需要先进性注册
EventBus.getDefault().register(this);
  onEventMainThread()进行数据接收
public void onEventMainThread(CityBean cityBean){  // 有用户主观选择的城市数据  if (cityBean != null) {    if (!CityHelper.CityEquals(cityBean, mLocalCity)) {      // 不相等      updateUI(cityBean, false);    }  } else {    // 定位失败    updateUI(mLocalCity, true);  }}
   最后注册解除
EventBus.getDefault().unregister(this);

后面转载的两篇博客将会对EventBus进行详细的解释,有兴趣的孩纸可以一看。

0 0
原创粉丝点击