爲啥用到了EventBus?

到今天,速運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進行詳細的解釋,有興趣的孩紙可以一看。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章