-
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中更新。