EventBus框架

一优质、EventBus框架的github地址:github.com/greenrobot/EventBus

主要用于事件的發(fā)布和訂閱声怔,是一個發(fā)布/訂閱的事件總線

包含四個成分:發(fā)布者跛锌、訂閱者惠爽、事件和總線

四者之間的關(guān)系:訂閱者訂閱事件到總線添吗,發(fā)送者發(fā)布事件沥曹,訂閱者可以訂閱多個事件,發(fā)送者可以發(fā)布任何事件碟联,發(fā)布者同時也可以是訂閱者

二妓美、實例

兩個Fragment組成主界面,左邊的Fragment是目錄(列表)鲤孵,右邊的Fragment是詳細信息界面

1壶栋、左邊目錄是從網(wǎng)絡獲取的;

2普监、當點擊目錄上的列表條目的時候委刘,動態(tài)更新詳細信息界面

傳統(tǒng)的做法是:

1、左邊目錄Fragment在onCreate中去開啟線程去訪問網(wǎng)絡獲取數(shù)據(jù)鹰椒,獲取完成之后通過handler去更新界面

2锡移、左邊目錄Fragment提供一個接口,然后詳細信息界面去注冊這個接口漆际,當發(fā)生點擊時淆珊,去回調(diào)這個接口,讓詳細信息界面發(fā)生改變奸汇,這一傳統(tǒng)的操作方法可以用EventBus來代替完成

EventBus的做法是:

EventBus.getDefault().register(this);//訂閱事件

EventBus.getDefault().post(object);//發(fā)布事件

EventBus.getDefault().unregister(this);//取消訂閱

1施符、在onCreate中進行了事件的訂閱,擂找,onDestroy里進行了事件的取消戳吝,onViewCreate里模擬一個子線程去網(wǎng)絡加載數(shù)據(jù),獲取成功后我們調(diào)用EventBus.getDefault().post()發(fā)布一個事件

2贯涎、總得流程是:onCreate時听哭,EventBus掃描當前類,將onEventMainThread以鍵值對的形式存儲,鍵為Item.class陆盘,值為包含該方法的對象普筹,當點擊事件發(fā)生時,出發(fā)onEventMainThread方法隘马,并把item值傳進來太防,更新控件

三、EventBus的ThreadMode

1酸员、EventBus包含4個ThreadMode:PostThread蜒车,MainThread,BackgroundThread幔嗦,Async

2醇王、具體的方法名為:onEventPostThread, onEventMainThread崭添,onEventBackgroundThread寓娩,onEventAsync

3、區(qū)別:

onEventMainThread代表這個方法會在UI線程執(zhí)行

onEventPostThread代表這個方法會在當前發(fā)布事件的線程執(zhí)行

BackgroundThread這個方法呼渣,如果在非UI線程發(fā)布的事件棘伴,則直接執(zhí)行,和發(fā)布在同一個線程中屁置。如果在UI線程發(fā)布的事件焊夸,則加入后臺任務隊列,使用線程池一個接一個調(diào)用

Async 加入后臺任務隊列蓝角,使用線程池調(diào)用阱穗,注意沒有BackgroundThread中的一個接一個

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市使鹅,隨后出現(xiàn)的幾起案子揪阶,更是在濱河造成了極大的恐慌,老刑警劉巖患朱,帶你破解...
    沈念sama閱讀 211,194評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件鲁僚,死亡現(xiàn)場離奇詭異,居然都是意外死亡裁厅,警方通過查閱死者的電腦和手機冰沙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評論 2 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來执虹,“玉大人拓挥,你說我怎么就攤上這事〈” “怎么了侥啤?”我有些...
    開封第一講書人閱讀 156,780評論 0 346
  • 文/不壞的土叔 我叫張陵当叭,是天一觀的道長。 經(jīng)常有香客問我愿棋,道長歼捏,這世上最難降的妖魔是什么西剥? 我笑而不...
    開封第一講書人閱讀 56,388評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮奖亚,結(jié)果婚禮上徘跪,老公的妹妹穿的比我還像新娘甘邀。我一直安慰自己,他們只是感情好垮庐,可當我...
    茶點故事閱讀 65,430評論 5 384
  • 文/花漫 我一把揭開白布松邪。 她就那樣靜靜地躺著,像睡著了一般哨查。 火紅的嫁衣襯著肌膚如雪逗抑。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評論 1 290
  • 那天寒亥,我揣著相機與錄音邮府,去河邊找鬼。 笑死溉奕,一個胖子當著我的面吹牛褂傀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播加勤,決...
    沈念sama閱讀 38,907評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼仙辟,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了鳄梅?” 一聲冷哼從身側(cè)響起叠国,我...
    開封第一講書人閱讀 37,679評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎戴尸,沒想到半個月后煎饼,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,122評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡校赤,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,459評論 2 325
  • 正文 我和宋清朗相戀三年吆玖,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片马篮。...
    茶點故事閱讀 38,605評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡沾乘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出浑测,到底是詐尸還是另有隱情翅阵,我是刑警寧澤歪玲,帶...
    沈念sama閱讀 34,270評論 4 329
  • 正文 年R本政府宣布,位于F島的核電站掷匠,受9級特大地震影響滥崩,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜讹语,卻給世界環(huán)境...
    茶點故事閱讀 39,867評論 3 312
  • 文/蒙蒙 一钙皮、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧顽决,春花似錦短条、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至赋访,卻和暖如春可都,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背蚓耽。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評論 1 265
  • 我被黑心中介騙來泰國打工汹粤, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人田晚。 一個月前我還...
    沈念sama閱讀 46,297評論 2 360
  • 正文 我出身青樓嘱兼,卻偏偏與公主長得像,于是被迫代替她去往敵國和親贤徒。 傳聞我的和親對象是個殘疾皇子芹壕,可洞房花燭夜當晚...
    茶點故事閱讀 43,472評論 2 348

推薦閱讀更多精彩內(nèi)容