EventBus 3.0 使用筆記

一、概述

EventBus 是一款針對(duì) Android 優(yōu)化的發(fā)布/訂閱事件總線顶瞒。主要功能是替
Intent,Handler,BroadCastReceiver 在 Fragment控淡,Activity嫌吠,Service,線程之間傳遞消息掺炭。
優(yōu)點(diǎn)是開銷小,代碼更優(yōu)雅凭戴。以及將發(fā)送者和接收者解耦涧狮。

二、基本使用

  • gradle集成
    compile 'org.greenrobot:eventbus:3.0.0'

  • 自定義需攜帶傳遞的參數(shù)的類么夫,因?yàn)閭鬟f的是一個(gè)對(duì)象者冤,如:

public class FirstEvent{
        private String mMsg;
        public FirstEvent(String msg){
            mMsg = msg; 
        }
        public String getmMsg(){
            return mMsg;
        }
    }
  • 在需要接收消息的 Activity/Fragment 中注冊(cè)和反注冊(cè)

    • onCreate() 中注冊(cè):EventBus.getDefault().register(this);
    • onDestroy() 中反注冊(cè):EventBus.getDefault().unregister(this);
    • 在需要發(fā)送信息的時(shí)候:EventBus.getDefault().post(event);
  • 重寫回調(diào)的接收信息和處理的訂閱函數(shù),用 @Subscribe + 模式 修飾档痪,如:
    PS: 系統(tǒng)是根據(jù) @Subscriber 這個(gè)注解來確定訂閱函數(shù)的

@Subscribe(threadMode = ThreadMode.MAIN) 
public void onEventMainThread(FirstEvent event) {
  String msg = "onEventMainThread收到了消息:" + event.getMsg();
  Log.d("eventbus", msg);
  text1.setText(msg);
  Toast.makeText(this, msg, Toast.LENGTH_LONG).show();
}

@Subscribe(threadMode = ThreadMode.MAIN)修飾的線程模式有 4 種:

  • ThreadMode.Main:表示這個(gè)方法在主線程中執(zhí)行(適合做異步加載涉枫,可以將子線程 加載到數(shù)據(jù)直接設(shè)置到 UI 界面)。

  • ThreadMode.Posting:表示該方法和消息發(fā)送方在同一個(gè)線程腐螟。

  • ThreadMode.ASYNC:表示無論發(fā)送方是在子線程還是在主線程愿汰,都會(huì)開一個(gè)新的子線程去運(yùn)行困后,適用于多個(gè)線程任務(wù),內(nèi)部有線程池管理衬廷,比如請(qǐng)求網(wǎng)絡(luò)時(shí)摇予,用這個(gè)方法,他會(huì)自動(dòng)創(chuàng)建方法去請(qǐng)求吗跋,可以異步并發(fā)處理侧戴。

  • ThreadMode.BackGround:表示該方法在后臺(tái)運(yùn)行(也就是子線程),不能夠并發(fā)處理跌宛,如果發(fā)布者在子線程酗宋,那么該方法就在子線程執(zhí)行。如果發(fā)布者在主線程疆拘,那么該方法就會(huì)創(chuàng)建一個(gè)子線程蜕猫,在子線程運(yùn)行。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末入问,一起剝皮案震驚了整個(gè)濱河市丹锹,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌芬失,老刑警劉巖楣黍,帶你破解...
    沈念sama閱讀 222,865評(píng)論 6 518
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異棱烂,居然都是意外死亡租漂,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,296評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門颊糜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來哩治,“玉大人,你說我怎么就攤上這事衬鱼∫捣ぃ” “怎么了?”我有些...
    開封第一講書人閱讀 169,631評(píng)論 0 364
  • 文/不壞的土叔 我叫張陵鸟赫,是天一觀的道長蒜胖。 經(jīng)常有香客問我,道長抛蚤,這世上最難降的妖魔是什么台谢? 我笑而不...
    開封第一講書人閱讀 60,199評(píng)論 1 300
  • 正文 為了忘掉前任,我火速辦了婚禮岁经,結(jié)果婚禮上朋沮,老公的妹妹穿的比我還像新娘。我一直安慰自己缀壤,他們只是感情好樊拓,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,196評(píng)論 6 398
  • 文/花漫 我一把揭開白布纠亚。 她就那樣靜靜地躺著,像睡著了一般骑脱。 火紅的嫁衣襯著肌膚如雪菜枷。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 52,793評(píng)論 1 314
  • 那天叁丧,我揣著相機(jī)與錄音啤誊,去河邊找鬼。 笑死拥娄,一個(gè)胖子當(dāng)著我的面吹牛蚊锹,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播稚瘾,決...
    沈念sama閱讀 41,221評(píng)論 3 423
  • 文/蒼蘭香墨 我猛地睜開眼牡昆,長吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了摊欠?” 一聲冷哼從身側(cè)響起丢烘,我...
    開封第一講書人閱讀 40,174評(píng)論 0 277
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎些椒,沒想到半個(gè)月后播瞳,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 46,699評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡免糕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,770評(píng)論 3 343
  • 正文 我和宋清朗相戀三年赢乓,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片石窑。...
    茶點(diǎn)故事閱讀 40,918評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡牌芋,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出松逊,到底是詐尸還是另有隱情躺屁,我是刑警寧澤,帶...
    沈念sama閱讀 36,573評(píng)論 5 351
  • 正文 年R本政府宣布经宏,位于F島的核電站楼咳,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏烛恤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,255評(píng)論 3 336
  • 文/蒙蒙 一余耽、第九天 我趴在偏房一處隱蔽的房頂上張望缚柏。 院中可真熱鬧,春花似錦碟贾、人聲如沸币喧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,749評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽杀餐。三九已至干发,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間史翘,已是汗流浹背枉长。 一陣腳步聲響...
    開封第一講書人閱讀 33,862評(píng)論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留琼讽,地道東北人必峰。 一個(gè)月前我還...
    沈念sama閱讀 49,364評(píng)論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像钻蹬,于是被迫代替她去往敵國和親吼蚁。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,926評(píng)論 2 361

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

  • 一问欠、簡介 EventBus是由greenrobot 組織貢獻(xiàn)的一個(gè)Android事件發(fā)布/訂閱輕量級(jí)框架肝匆。Even...
    Mr丶sorrow閱讀 14,983評(píng)論 0 13
  • 原文鏈接:http://blog.csdn.net/u012810020/article/details/7005...
    tinyjoy閱讀 550評(píng)論 1 5
  • EventBus可以實(shí)現(xiàn)組件間通信,線程通信顺献,比較方便靈活,2.x和3.0差別很多旗国。 Android Studio...
    Sunyard_QiL閱讀 806評(píng)論 0 2
  • EventBus 是一個(gè)Android端優(yōu)化的 publish/subscribe 消息總線,簡化了應(yīng)用程序各個(gè)組...
    王世軍Steven閱讀 1,858評(píng)論 4 21
  • 前言:EventBus出來已經(jīng)有一段時(shí)間了,github上面也有很多開源項(xiàng)目中使用了EventBus滚澜。所以抽空學(xué)習(xí)...
    Kerry202閱讀 1,289評(píng)論 1 2