EventBus官方教程
說明 :
本文翻譯自官網,如英文較好者可自行去官網檢視,本文如有錯誤,往眾大神多多指出!
英文能力差,理解能力差(本人翻譯生硬),想快速入門,可看我另一篇部落格一篇搞定EventBus。
事件匯流排:Android事件
EventBus是一個開源庫的Android和java使用釋出/訂閱為 鬆耦合模式。EventBus使中央通訊能夠用幾行程式碼解耦類——簡化程式碼,消除依賴關係,加速應用程式開發。
你使用EventBus的好處:
- 簡化元件之間的通訊
- 解耦事件傳送者和接收者
- 使用UI artifacts (例如activity、fragment)和後臺執行緒
- 避免複雜易出錯的依賴和生命週期問題
- 快速;專門優化高效能
- 很小 (<50k jar)
- 是 實踐證明100000000 +安裝的應用程式
- 具有傳輸執行緒、使用者優先順序等高階特性
進一步事件匯流排特性
- Convenient Annotation based API: 簡單放置 @Subscribe annotation 到您的訂閱方法. 由於註釋的生成時間索引, EventBus不需要在應用程式執行時做註解反射。
- Android main thread delivery: 當與UI互動時,EventBus可以在主執行緒中傳遞事件,而不管釋出的是什麼事件。
- Background thread delivery: 如果您的訂戶執行長時間執行的任務,EventBus也可以使用後臺執行緒來避免UI阻塞。
- Event & Subscriber inheritance: 在EventBus中,物件導向的範例適用於事件和訂閱伺服器類。假設事件類A是B的超類,B型別的張貼事件也將被髮布給感興趣的使用者。同樣地,考慮了使用者類的繼承。
- Jump start:您可以立即啟動-而不需要使用預設EventBus例項配置任何程式碼,可以從程式碼中的任何地方使用。
- Configurable: 為了將EventBus調整為您的需求,可以使用Builder模式調整其行為。
將EventBus新增到您的專案中
EventBus可在JCenter和Maven Central上使用,因此只需將依賴項新增到專案中即可。
EventBus開始使用
使用EnvestBUS的第一步,請單擊 documentation / tutorial
, 特別是getting started guide.
以上便是官方文件翻譯而來
如何在3個步驟中啟動EnvestBUS
EnviBus API與1-2-3一樣容易。
在我們開始之前 確保將EnviBUS新增到專案中作為依賴項.
Step 1: 定義事件
事件是POJO (普通java物件)沒有任何具體的要求。
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
第2步:準備subscribers
訂閱伺服器實現事件處理方法 (也稱為 “subscriber methods”) 這將在事件釋出時被呼叫。這些都是用 @Subscribe annotation.
注意,EnvestBUS 3可以自由選擇方法名稱(如EnvestBUS 2中沒有命名約定)。
// 當釋出訊息事件時,將呼叫此方法(在ToST的UI執行緒中)
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(MessageEvent event) {
Toast.makeText(getActivity(), event.message, Toast.LENGTH_SHORT).show();
}
// 當釋出某個事件時,將呼叫此方法。
@Subscribe
public void handleSomethingElse(SomeOtherEvent event) {
doSomethingWith(event);
}
Subscribers 需要 註冊 和登出 從事件匯流排上. 只有註冊使用者時,他們將收到事件.在Android中,在活動和片段中,你通常應該註冊 根據它們的生命週期. 大多數情況下,啟動/停止都可以正常工作。:
@Override
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
}
@Override
public void onStop() {
EventBus.getDefault().unregister(this);
super.onStop();
}
第三步:釋出事件
從程式碼的任何部分發布事件。所有與事件型別匹配的當前註冊使用者將接收它。
EventBus.getDefault().post(new MessageEvent("Hello everyone!"));
Learn more
Have a look at the full documentation to learn about all features of EventBus.
相關文章
- [翻譯]CMAKE官方教程
- ZooKeeper 官方教程[翻譯]
- EventBus
- Python 官方文件:入門教程Python
- Matlab 2018a 官方教程[二]Matlab
- EventBus & Vuex?Vue
- 安卓EventBus使用方法,eventbus舉例安卓
- OPENVINO官方開發進階教程
- 官方教程:Go fuzzing模糊測試Go
- Google Guava官方教程(中文版)GoGuava
- Cesium官方教程5--地形圖層
- EventBus/EventQueue 再思考
- EventBus 原理解析
- EventBus的實現
- EventBus原始碼分析原始碼
- Pandas 2.2 中文官方教程和指南(六)
- Pandas 2.2 中文官方教程和指南(三)
- 造輪子之EventBus
- EventBus的使用與分析
- Android EventBus技能點梳理Android
- MASA Framework - EventBus設計Framework
- EventBus 3.0 原始碼分析原始碼
- EventBus原始碼學習原始碼
- EventBus 3.1.1 原始碼解析原始碼
- EventBus 原始碼分析(上篇)原始碼
- 【譯】Java8官方教程:Java技術概述Java
- 比官方還詳細的ByteBuddy入門教程
- Ant Design 官方《Ant Design 實戰教程》釋出
- lxml官方入門教程(The lxml.etree Tutorial)翻譯XML
- stable-diffusion-webui官方版本地安裝教程WebUI
- win10官方u盤安裝教程2022最新Win10
- Pandas 2.2 中文官方教程和指南(二十二)
- Pandas 2.2 中文官方教程和指南(二十四)
- Max/MSP/Jitter 官方教程翻譯11 - 矩陣混合矩陣
- 史上最全cudnn 安裝教程,來源與官方文件DNN
- 簡單寫一個eventbus
- EventBus 在vue的實現Vue
- 簡單跨程式使用EventBus