編輯:Android資訊
AndroidEventBus是一個Android平台的事件總線庫, 它簡化了Activity、Fragment、Service等組件或者對象之間的交互,很大程度上降低了它們之間的耦合,使得我們的代碼更加簡潔,耦合性更低,提升我們的代碼質量。
AndroidEventBus吸收了greenrobot的EventBus以及square的otto的優點,並在此基礎上做出了相應的改進,使得事件總線框架更適合用戶的使用習慣,也使得事件的投遞更加的精准、靈活。
AndroidEventBus簡約整體設計大致如上圖所示,主要分為三個部分,即EventBus、SubscriberMethodHunter、EventHandler。
EventBus負責訂閱對象與事件的管理,比如注冊、注銷以及發布事件等。在初始時將某個對象注冊到EventBus中,EventBus會遍歷該對象class中的所有方法,把參數數量為1且用了Subscriber注解標識的函數管理起來,以事件類型和訂閱函數Subscriber的tag構建一個EventType作為一種事件類型,某個事件類型對應有一個接收者列表。當有事件發布時,EventBus會根據發布的事件類型與tag構建EventType,然後找到對應的訂閱者列表,並且將這些事件投遞給所有訂閱者。SubscriberMethodHunter負責查找合適的EventType,而EventHandler則負責將這些訂閱函數執行到相應的線程中。至此,整個事件總線的操作流程就完成了,當然在將Activity、Fragment等組件注冊到EventBus時,不要忘了在這些對象銷毀時將它們從EventBus中移除,即調用unregister方法。
事件總線的基本結構和設計都是類似的,只是大家在各種feature之間做了取捨或者增強了某些功能,使之能夠滿足用戶的具體需求。幾個事件總線庫的基本特點在章節1中已經粗略給出。大家可以根據自己的需求進行選擇。
本篇文章我們對AndroidEventBus做了一個簡介,在後續的文章中我們再進行詳細介紹,敬請期待。
在Google的廣大支持下,便捷開發Android程序的Native工具層出不窮。其實Android開發涉及到的范圍也不小,一些Web工具有時候也會帶來事半功倍的
TextView比較簡單,不能夠用來進行編輯,只能夠用來顯示信息 布局文件裡的一些常用的XML屬性 android:gravity—用來設置控件內文本
學過android的人都知道,activity是最常用的四大組件之一,但你真的了解透徹activity了嗎?接下來,本人將從activity的正常和異常生命周期、
軟件庫的存在使得Android編碼更方便快捷。在如此多 Android庫中,我們該如何尋找最合適的一款呢?下面我們做了一個列表供你參考。 動畫(Animatio