兩個activity之間的通訊方法:broadcast、intent、bundle、android四大存儲類型(preferences、fille、數據庫和contentprovider)、繼承application以及EventBus。具備解耦的能力,增長了類型安全,而且Event類能夠定義成任何類型。固然不單單侷限於兩個activity之間的通訊。可以使用在:activity、fragment、service等組件之間的交互android
四個簡單的使用步驟:一、定義一個Event事件 二、註冊一個訂閱者register 三、發佈一個事件post 四、接收這個事件 onEvent數據庫
在須要接收消息的頁面註冊。不要忘記在銷燬的時候取消掉。安全
函數名app |
含義ide |
TreadModle函數 |
onEventpost |
事件處理在事件發送的那個線程執行spa |
PostThread.net |
onEventMainThread線程 |
事件在主線程-UI線程執行 |
MainThread |
onEventBackgroundThread |
事件在子線程,則接收一樣線程;不然,啓動一個子線程 |
BackgroundThread |
onEventAsync |
事件會單獨啓動一個線程執行(每一個事件都會啓動一個線程) |
Async |
對錶格的詳細解釋:
onEvent:
使用onEvent來接收事件,接收事件和分發事件在一個線程中執行。
onEventMainThread:
使用onEventMainThread來接收事件,無論在UI線程post消息仍是在非UI線程post消息均可以調用onEventMainThread方法更新UI操做。
onEventBackgroundThread:
若是post在子線程運行,那麼接收事件直接在一樣線程;若是在UI線程post,那麼會啓動一個子線程運行接收事件。不能更新UI操做。與onEvent一個區別:UI線程post消息會開啓一個子線程回調方法。
onEventAsync:
不管在哪一個線程post,接收者都會在另一個子線程執行。
發送方不須要註冊,接收方在oncreate方法裏註冊,在ondestroy註銷。
根據發送的類型來接收。