EventBus(一) —— GitHub簡介

原文地址: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的三步


  1. 定義事件
public static class MessageEvent { /* 如果有必要,可以增加字段 */ }
  1. 準(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);
 }
  1. 發(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。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容