1. 程式人生 > >Android開發執行緒間的互動之EventBus簡單使用

Android開發執行緒間的互動之EventBus簡單使用

EventBus是有GreenDao公司提出的一個用於Android平臺執行緒、程序間通訊的庫。最新的版本為3.0.0。
github地址:https://github.com/greenrobot/EventBus

EventBus簡介

EventBus是一個Android端優化的publish/subscribe訊息匯流排,簡化了應用程式內各元件間、元件與後臺執行緒間的通訊。可替代 Intent, Handler, BroadCast ,介面等傳統方案,更快,程式碼更小,50K 左右的 jar 包,程式碼更優雅,徹底解耦。

EventBus使用

1、在AndroidStudio中我們可以在gradle裡面直接配置即可。

compile 'org.greenrobot:eventbus:3.0.0'

2、在Activity的onCreate方法中註冊EventBus

EventBus.getDefault().register(this);

3、建立一個實體類作為EventBus中的事件

public class MessageEvent {

    private String message;

    public MessageEvent(String message) {
        this.message = message;
    }

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

4、在Activity中開啟一個執行緒傳送訊息

new Thread(new Runnable() {
       @Override
       public void run() {
          EventBus.getDefault().post(new MessageEvent("你好!我是EventBus方法"));
      }
}).start();

5、寫一個方法使用註解的形式接受訊息更新ui

@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
    mTextView.setText(event.getMessage());
};

6、在onDestroy中解除註冊

@Override
protected void onDestroy() {
    super.onDestroy();
    EventBus.getDefault().unregister(this);
}

這樣一個簡單的EventBus的使用就寫完了。其實EventBus的應用遠不止此。網上也有很多的例子以及介紹,可以多看一看。