EventBus使用小記

自從使用了EventBus,代碼乾淨了好多。git

今後你不用startActivityForResult了,今後你不用再寫註冊BroadcastReceiver了,今後你不用再寫一些回調了。github

只須要在須要監聽的頁面,註冊EventBus,而後等事件發過來,作相應的改變就能夠了。post

通常在onCreate,onDestory回調作註冊與反註冊ui

發送事件寫法spa

EventBus.getDefault().post(T event);//當前頁面存在,就會調用相應onEvent,當前頁面不在,就不會調用線程

EventBus.getDefault().postSticky(T event);//當前頁面在,會調用相應onEvent,當前頁面不在,等再進入這個頁面時,也會調用onEvent事件

監聽事件寫法:get

onEvent(T event): 你的Event從什麼線程發過來,這個方法就會在相同的線程執行
onEventMainThread(T event): 無論你的Event從哪一個線程發過來,這個方法只會在主線程運行,因此能夠作和View更新相關的操做
onEventAsync(T event): 這個方法會運行在一條新的線程裏,不是在主線程,也不是在你Event發過來所在的
onEventBackgroundThread(T event): 若是你發Event所在的線程不是ui線程,那麼這個方法會運行在Event所在線程。若是你在ui線程發Event過來,這個方法會運行在一個EventBus管理的線程裏。這條線程會在後臺同步管理着多個Events,也即事件進入後會排除同步

相關文章
相關標籤/搜索