EventBus 3.0 線程模式說明

  • ThreadMode: POSTING

    默認(rèn)的線程模式,如果使用事件處理函數(shù)指定了線程模型為POSTING,那么該事件在哪個線程發(fā)布出來的, 事件處理函數(shù)就會在這個線程中運行,也就是說發(fā)布事件和接收事件在同一個線程。此外,在線程模型為POSTING的事件處理函數(shù)中盡量避免執(zhí)行耗時操作,因為它會阻塞事件的傳遞,甚至有可能會引起ANR。

  • ThreadMode: MAIN

    事件的處理會在UI線程中執(zhí)行。此外也不能在處理事件中執(zhí)行比較耗時的操作,否則也會引起ANR。

  • ThreadMode: BACKGROUND

    如果事件是在UI線程中發(fā)布出來的,那么該事件處理函數(shù)就會在新的線程中運行,如果事件本來就是子線程中發(fā)布出來的,那么該事件處理函數(shù)直接在發(fā)布事件的線程中執(zhí)行。在此事件處理函數(shù)中禁止進(jìn)行UI更新操作。

  • ThreadMode: ASYNC

無論事件在哪個線程發(fā)布,該事件處理函數(shù)都會在新建的子線程中執(zhí)行,同樣,此事件處理函數(shù)中禁止進(jìn)行UI更新操作,因為這牽涉到UI的更新只能在 main thread中更新。

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

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

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