EventBus框架

一:EventBus是個(gè)什么東西

下載地址:https://github.com/greenrobot/EventBus

EventBus就是publish/subscribe消息總線,主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息。

它的三要素:

Event:事件??梢允侨魏蔚膶?duì)象。

Subscriber:事件訂閱者,接收特定的事件。方法以onEvent**開(kāi)頭,一共有四個(gè)方法onEvent,onEventMainThread,onEventBackgroundThread,onEventAsync。它們之間的區(qū)別在于在不同的線程。等會(huì)會(huì)有一一舉例。

Publisher:事件發(fā)布者,用于通知Subscriber有事件發(fā)生,可以在任何的地方發(fā)布事件。使用也是簡(jiǎn)單,只要調(diào)用post(Object)方法就可以了。

二:如何使用

定義一個(gè)事件對(duì)象

創(chuàng)建MainActivity并注冊(cè)訂閱者

在MainActivity中實(shí)現(xiàn)onEvent**方法


點(diǎn)擊發(fā)送UI線程中的事件,onEvent執(zhí)行就是在UI線程中,onEventMainThread也運(yùn)行在UI線程中,onEventBackgroundThread是另啟動(dòng)了一個(gè)線程,onEventAsync也是另啟動(dòng)了一個(gè)線程。

點(diǎn)擊發(fā)送工作線程中的事件,onEvent執(zhí)行在工作線程中,onEventMainThread運(yùn)行在UI線程中,onEventBackgroundThread運(yùn)行在當(dāng)前的工作線程中,onEventAsync啟動(dòng)了另一個(gè)線程。

所以根據(jù)上面的結(jié)果可以很好的理解各個(gè)onEvent的區(qū)別:

onEvent:事件在哪個(gè)線程發(fā)布出來(lái)的,就會(huì)在這個(gè)線程中運(yùn)行,也就是說(shuō)發(fā)布事件和接收事件線程在同一個(gè)線程。

onEventMainThread:事件無(wú)論是從哪個(gè)線程發(fā)布出來(lái)的,都會(huì)在UI線程中執(zhí)行。

onEvnetBackground:事件是在UI線程中發(fā)布出來(lái)的,那么就會(huì)在子線程中運(yùn)行,如果事件本來(lái)就是子線程中發(fā)布出來(lái)的,那么就直接在該子線程中執(zhí)行。

onEventAsync:使無(wú)論事件在哪個(gè)線程發(fā)布,都會(huì)創(chuàng)建新的子線程。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 先吐槽一下博客園的MarkDown編輯器,推出的時(shí)候還很高興博客園支持MarkDown了,試用了下發(fā)現(xiàn)支持不完善就...
    Ten_Minutes閱讀 661評(píng)論 0 2
  • 一、EventBus框架的github地址:github.com/greenrobot/EventBus 主要用于...
    黃培忠閱讀 437評(píng)論 0 0
  • 1. Publisher是發(fā)布者, 通過(guò)post()方法將消息事件Event發(fā)布到事件總線 2. EventBus...
    onlyxing閱讀 1,154評(píng)論 0 1
  • 在Android開(kāi)發(fā)中可能會(huì)遇到過(guò)這樣一種情況,兩個(gè)Activity或者Activity與Service、Acti...
    MQLX閱讀 388評(píng)論 0 3
  • 《面朝大海,春暖花開(kāi)》 很喜歡《面朝大海,春暖花開(kāi)》 這首詩(shī)讓我看到了一個(gè)善良淳樸純真樂(lè)觀簡(jiǎn)單容易滿足重感情的海子...
    羽毛凌亂不成衣閱讀 716評(píng)論 4 4

友情鏈接更多精彩內(nèi)容