Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> Android開發 >> 關於android開發 >> android EventBus 的使用,androideventbus

android EventBus 的使用,androideventbus

編輯:關於android開發

android EventBus 的使用,androideventbus


 今天簡單的介紹 一下啊 android  EventBus 的使用 

 EventBus 在官方介紹中是訂閱......什麼的 一大堆  ,  在我android 菜鳥眼裡 就是用來代替android 廣播的  簡單粗暴 效率高;

其實用法挺簡單 的   就   三步   注冊(官方叫訂閱)   接收   取消(取消訂閱). 算了 不多說直接上代碼 ;

 

如果你用的是 android studio 直接在build.gradle 裡添加 :

compile files('libs/EventBus2.4.jar') 

這個基礎的就不做 過多解釋了 網上 jar 類庫什麼的一大堆

下面是使用:
首先是發送數據
EventBus.getDefault().post(event);//這個在項目哪裡都可以發的  event 參數等下講

接收:
EventBus.getDefault().register(this);//接收之前是要先注冊的  否則不會觸發
onEventMainThread  也就是收不到發的event 你可以寫在onCreate()等初始化方法裡 
public void onEventMainThread(Event event) {
//接收方法(這是低版本固定格式後面介紹高版本使用)
//event 可以是任意類型 只能一個參數 建議封裝一下擴展性強一點 下
//就把這裡當做廣播接收的地方用吧 更新ui 獲取數據.....都可以
int type = event.getType();
switch (type) {
case 1:

break;
case 2:

}
break;
case 3:

break;
}
}


//Event 封裝
public class Event {
private int type;
private Object message;

public int getType() {
return type;
}

public void setType(int type) {
this.type = type;
}

public Object getMessage() {
return message;
}
    public void setMessage(Object message) {
this.message = message;
}
}


到這裡就介紹完了.....相信初學的都能看懂  另外有些時候 發現跟新ui有時候會不靈  可能是不同的項目某些寫法上造成的  原因還在查找中  ,但是放心用吧 一般情況不會有問題的 
然後提一下 EventBus3.0 用法都一樣 只是接收方法不一樣了 想在
onEventMainThrea更新ui  必須在方法頭部加 
@Subscribe(threadMode = ThreadMode.MainThread) //在ui線程執行
    public void onUserEvent(UserEvent event) {
    }
    @Subscribe(threadMode = ThreadMode.BackgroundThread) //在後台線程執行
    public void onUserEvent(UserEvent event) {
    }
    @Subscribe(threadMode = ThreadMode.Async) //強制在後台執行
    public void onUserEvent(UserEvent event) {
    }
    @Subscribe(threadMode = ThreadMode.PostThread) //默認方式, 在發送線程執行
    public void onUserEvent(UserEvent event) {
    }
另外 :你不必再去約定OnEvent方法開頭了該操作很簡單,定義了一個hello方法,需要傳入String參數,在其中操作UI操作,注意:我們添加了注解@Subscribe,其含義為訂閱者,在其內傳入了threadMode,我們定義為ThreadMode.MainThread,其含義為該方法在UI線程完成,這樣你就不要擔心拋出異常啦。是不是很簡單?

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved