Android開發執行緒間的互動之EventBus簡單使用
阿新 • • 發佈:2019-01-11
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的應用遠不止此。網上也有很多的例子以及介紹,可以多看一看。