EventBus簡單實(shí)用

EventBus github 地址
在Android Studio中添加如下依賴:
compile 'org.greenrobot:eventbus:3.1.1'

EventBus 的使用

  1. 創(chuàng)建事件實(shí)體類
    當(dāng)使用EventBus從一個組件向另外一個組件發(fā)送的信息,可以是儲存在一個類中,該類就是一個事件熬词,會被EventBus發(fā)送給訂閱者沧卢。
public class MessageEvent {

    private String message;

    public MessageEvent(String message){
        this.message = message;
    }

    public String getMessage(){
        return message;
    }
}
  1. 向EventBus注冊削解,成為訂閱者以及解除注冊
EventBus.getDefault().register(this);

通過上面代碼便可以為當(dāng)前類注冊蜓耻,成為訂閱者存哲,一般在類初始化時注冊母蛛,如果是Activity則在onCreate()方法中進(jìn)行注冊翩剪。

EventBus.getDefault().unregister(this);

當(dāng)訂閱者不再需要接受事件時候,需要解綁彩郊,釋放內(nèi)存肢专。

  1. 聲明訂閱方法
@Subscribe(threadMode = ThreadMode.MAIN,priority = 100,sticky = true)
public void test(String str){

 }

在需要接受方法上面設(shè)置@Subscribe即可,
threadMode 表示在那個線程執(zhí)行此方法焦辅,
priority 表示執(zhí)行的優(yōu)先級博杖,
sticky 表示是否粘性。
需要注意的是本方法必須為public筷登,并且參數(shù)必須為一個剃根,這個我們在后面源碼分析中會解釋。

  1. .發(fā)送事件
EventBus.getDefault().post(EventType eventType);

與觀察者模式類似前方,當(dāng)有事件發(fā)生時狈醉,需要通知觀察者廉油。這個方法就是通知觀察者的方法,EventBus在底層進(jìn)行了封裝苗傅。

ThreadMode分析
POSTING:表示在發(fā)送事件的線程執(zhí)行方法抒线。
MAIN: 表示在主線程執(zhí)行方法。
BACKGROUND:表示在子線程執(zhí)行方法渣慕。
ASYNC:表示在非當(dāng)前線程執(zhí)行方法嘶炭,會重新創(chuàng)建一個新的線程執(zhí)行方法。
priority 優(yōu)先級
設(shè)置該優(yōu)先級的目的是逊桦,當(dāng)一個事件有多個訂閱者的時候眨猎,優(yōu)先級高的會優(yōu)先接收到事件。
sticky 粘性事件
在注冊之前便把事件發(fā)生出去强经,等到注冊之后便會收到最近發(fā)送的粘性事件(必須匹配)睡陪。注意:只會接收到最近發(fā)送的一次粘性事件,之前的會接受不到匿情。

總結(jié)
至此EventBus的使用方式就講到這里兰迫,下面看EventBus的源碼解析。

EventBus源碼解析

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末炬称,一起剝皮案震驚了整個濱河市汁果,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌转砖,老刑警劉巖须鼎,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異府蔗,居然都是意外死亡晋控,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進(jìn)店門姓赤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來赡译,“玉大人,你說我怎么就攤上這事不铆◎蚍伲” “怎么了?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵誓斥,是天一觀的道長只洒。 經(jīng)常有香客問我,道長劳坑,這世上最難降的妖魔是什么毕谴? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上涝开,老公的妹妹穿的比我還像新娘循帐。我一直安慰自己,他們只是感情好舀武,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布拄养。 她就那樣靜靜地躺著,像睡著了一般银舱。 火紅的嫁衣襯著肌膚如雪瘪匿。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天纵朋,我揣著相機(jī)與錄音柿顶,去河邊找鬼茄袖。 笑死操软,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的宪祥。 我是一名探鬼主播聂薪,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼蝗羊!你這毒婦竟也來了藏澳?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤耀找,失蹤者是張志新(化名)和其女友劉穎翔悠,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體野芒,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡蓄愁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了狞悲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片撮抓。...
    茶點(diǎn)故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖摇锋,靈堂內(nèi)的尸體忽然破棺而出丹拯,到底是詐尸還是另有隱情,我是刑警寧澤荸恕,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布乖酬,位于F島的核電站,受9級特大地震影響融求,放射性物質(zhì)發(fā)生泄漏咬像。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望施掏。 院中可真熱鬧钮惠,春花似錦、人聲如沸七芭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狸驳。三九已至预明,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間耙箍,已是汗流浹背撰糠。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留辩昆,地道東北人阅酪。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像汁针,于是被迫代替她去往敵國和親术辐。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,543評論 2 349

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