編輯:關於Android編程
AndroidEventBus是一個Android平台的事件總線庫, 它簡化了Activity、Fragment、Service等組件或者對象之間的交互,很大程度上降低了它們之間的耦合,使得我們的代碼更加簡潔,耦合性更低,提升我們的代碼質量。
AndroidEventBus吸收了greenrobot的EventBus以及square的otto的優點,並在此基礎上做出了相應的改進,使得事件總線框架更適合用戶的使用習慣,也使得事件的投遞更加的精准、靈活。
更多細節請參考AndroidEventBus、Android事件總線 ( AndroidEventBus ) 開源庫發布。
AndroidEventBus簡約整體設計大致如上圖所示,主要分為三個部分,即EventBus、SubscriberMethodHunter、EventHandler。
EventBus負責訂閱對象與事件的管理,比如注冊、注銷以及發布事件等。在初始時將某個對象注冊到EventBus中,EventBus會遍歷該對象class中的所有方法,把參數數量為1且用了Subscriber注解標識的函數管理起來,以事件類型和訂閱函數Subscriber的tag構建一個EventType作為一種事件類型,某個事件類型對應有一個接收者列表。當有事件發布時,EventBus會根據發布的事件類型與tag構建EventType,然後找到對應的訂閱者列表,並且將這些事件投遞給所有訂閱者。SubscriberMethodHunter負責查找合適的EventType,而EventHandler則負責將這些訂閱函數執行到相應的線程中。至此,整個事件總線的操作流程就完成了,當然在將Activity、Fragment等組件注冊到EventBus時,不要忘了在這些對象銷毀時將它們從EventBus中移除,即調用unregister方法。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjxoMiBpZD0="3-流程圖">3. 流程圖
事件總線的基本結構和設計都是類似的,只是大家在各種feature之間做了取捨或者增強了某些功能,使之能夠滿足用戶的具體需求。幾個事件總線庫的基本特點在章節1中已經粗略給出。大家可以根據自己的需求進行選擇。
本篇文章我們對AndroidEventBus做了一個簡介,在後續的文章中我們再進行詳細介紹,敬請期待。
Android打包apk時,有時候需要打各種渠道包,例如 豌豆莢、華為手機市場、小米市場、360市場等,那麼每一種渠道打包時,都需要配置不同的數據元,如果渠道較多,那麼打
一、簡介 最近朋友公司需要實現一個垂直上拉下滑的View,該View最初只有一部分顯示在屏幕最下方,上拉那一部分可以將該View全部拉出來並全部顯示在屏幕上,下滑該Vie
先上效果圖實現思路:核心其實就是圓柱的繪制,上下兩個橢圓中間用線起來就行了。直接上代碼/*** Created by catos on 2016/7/21.* 銷售漏斗*
關於startService的基本使用概述及其生命周期可參見博客《Android中startService的使用及Service生命周期》。本文通過播放背景音樂的簡單示例