android EventBus 的使用,androideventbus

來源:互聯網
上載者:User

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線程完成,這樣你就不要擔心拋出異常啦。是不是很簡單?

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.