Android 認識EventBus輕量級事件匯流排框架
EventBus
定義:是一個釋出、訂閱的輕量級事件匯流排框架。
新增gradle依賴:dependencies { compile 'de.greenrobot:eventbus:2.4.0' }
關係:訂閱者可以訂閱多個事件;釋出者可以釋出任何事件;釋出者同時可以是訂閱者。
操作:EventBus.getDefault()獲取例項物件。
EventBus.getDefault().register(this);//訂閱者
EventBus.getDefault().post(object);//釋出者
EventBus.getDefault().unregister();//取消訂閱
使用:
1:onEventMainThread:代表這個方法會在UI執行緒執行
2:onEventPostThread:代表這個方法會在當前執行緒執行
3:onEventBackgroundThread:代表非UI執行緒會在同執行緒執行,是的話在後臺執行,一個一個呼叫。
4:onEventAsync:代表加入後臺任務,使用執行緒池呼叫,不是一個一個呼叫。
原理:
EventBus內部封裝4個onEvent方法,然後post的時候,根據post引數型別 自動匹配執行的方法(物件導向多型性過載)。
register(this)訂閱在當前類,就會遍歷當前類所有的方法,找到onEvent開發的方法,然後進行Map儲存,key為class型別,值為物件例項。
優勢:
簡化程式碼,減少系統開銷,降低耦合,清晰簡潔。
可以在Activity、Fragment、Service等元件互動通訊。
可以替代Thread+Handle非同步執行緒間傳遞訊息。
可以替代Intent、Broadcast傳遞訊息。
相關文章
- 手寫Android事件匯流排框架Eventbus(簡易版)Android事件框架
- Vue事件匯流排(EventBus)Vue事件
- Flutter中的事件匯流排(EventBus)Flutter事件
- 自己動手寫事件匯流排(EventBus)事件
- 事件匯流排EventBus和觀察者模式事件模式
- 比 EventBus 更高效的事件匯流排(BusUtils)事件
- Flutter基礎-036-事件匯流排EventBusFlutter事件
- Vue事件匯流排(EventBus)使用詳細介紹Vue事件
- 基於事件匯流排EventBus實現郵件推送功能事件
- 事件匯流排事件
- ESB匯流排平臺,輕量級視覺化編排視覺化
- RestCloud API閘道器,輕量級ESB服務匯流排RESTCloudAPI
- 將Abp預設事件匯流排改造為分散式事件匯流排事件分散式
- .Net Core微服務入門全紀錄(六)——EventBus-事件匯流排微服務事件
- 用LiveDataBus替代RxBus、EventBus——Android訊息匯流排的演進之路LiveDataAndroid
- Vue 事件中央匯流排Vue事件
- Android輕量級事件通訊方案Android事件
- 200程式碼寫一套屬於自己的事件匯流排(EventBus)庫事件
- SOFA 原始碼分析— 事件匯流排原始碼事件
- azeroth-event輕量級事件驅動框架事件框架
- 你玩過輕量系統軟匯流排應用嗎?
- 事件匯流排的設計與實現事件
- EventBridge 事件匯流排及 EDA 架構解析事件架構
- Fastflow——基於golang的輕量級工作流框架ASTGolang框架
- 匯流排
- Android元件化之(路由 vs 元件匯流排)Android元件化路由
- 實現一個事件匯流排(vue.prototype.$bus)?事件Vue
- 元件間通訊--利用mitt實現事件匯流排元件MIT事件
- 如何在 pyqt 中實現全域性事件匯流排QT事件
- 如何在 JavaScript 中實現 Event Bus(事件匯流排)JavaScript事件
- 在vue專案中自定義事件匯流排eventHubVue事件
- Flutter路由輕量級框架FRouterFlutter路由框架
- 輕量級orm框架——gzero指南ORM框架
- 輕量級Web框架Flask(二)Web框架Flask
- 風險洞察之事件匯流排的探索與演進事件
- .Net Core對於`RabbitMQ`封裝分散式事件匯流排MQ封裝分散式事件
- 原始碼解析-Abp vNext丨分散式事件匯流排DistributedEventBus原始碼分散式事件dev
- 6.匯流排
- 【vue外掛篇】vue-options-events 事件匯流排觸發Vue事件