原文地址:https://github.com/greenrobot/EventBus
EventBus
EventBus是一個針對Android進(jìn)行了優(yōu)化的 發(fā)布/訂閱 事件總線。

EventBus協(xié)作圖
EventBus...
- 簡化組件之間的通信過程
- 解耦事件發(fā)布者和接受者
- 在Activities,Fragment和后臺線程中表現(xiàn)良好
- 避免復(fù)雜易錯的依賴和生命周期問題
- 讓你的代碼更簡單
- 速度快
- 輕量級(大約50K的jar包)
- 在100,000,000+次apps的安裝實(shí)踐中得到證明
- 具有線程間傳遞和訂閱者優(yōu)先級等高級特性
使用EventBus的三步
- 定義事件
public static class MessageEvent { /* 如果有必要,可以增加字段 */ }
- 準(zhǔn)備訂閱者:聲明和注釋你的訂閱者方法,可選地指定線程模式
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {/* 寫相關(guān)代碼 */};
注冊和取消注冊您的訂閱者。例如在Android上,Activities和Fragments通常應(yīng)該根據(jù)它們的生命周期來注冊:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
super.onStop();
EventBus.getDefault().unregister(this);
}
- 發(fā)送事件
EventBus.getDefault().post(new MessageEvent());
閱讀完整的入門指南
在你的項(xiàng)目中集成EventBus
通過Gradle:
compile 'org.greenrobot:eventbus:3.0.0'
通過Maven
<dependency>
<groupId>org.greenrobot</groupId>
<artifactId>eventbus</artifactId>
<version>3.0.0</version>
</dependency>
或者從Maven中央倉庫下載最新的Jar包
主頁、文檔、鏈接
有關(guān)更多詳情,請查看EventBus官網(wǎng)。在這里你可能會發(fā)現(xiàn)一些有用的直接鏈接:
EventBus和其它解決方案比較表現(xiàn)如何,像和Square提供的Otto比較?看一下這個對照表
版權(quán)許可證
版權(quán)所有(C)2012-2016 Markus Junginger,greenrobot(http://greenrobot.org)
EventBus二進(jìn)制文件和源代碼依據(jù)Apache License, Version 2.0。