EventBus3.1.1

https://github.com/greenrobot/EventBus

參考:Android EventBus 3.0.0 使用總結


發送數據:
EventBus.getDefault().post(a);

接收數據:

  • 註冊:EventBus.getDefault().register(this);
  • 解註冊:EventBus.getDefault().unregister(this);
  • 處理數據:
@Subscribe(threadMode = ThreadMode.MAIN)
public void test(A a){  //參數類型與發送的數據的類型相同

}

四種threadMode:
ThreadMode.POSTING
發佈事件和接收事件在同一個線程。(避免執行耗時操作,防止阻塞線程)

ThreadMode.MAIN
不論事件是在哪個線程中發佈出來的,該事件處理函數都會在UI線程中執行。(該方法可以用來更新UI,但是不能處理耗時操作)

ThreadMode.BACKGROUND
如果事件是在UI線程中發佈出來的,那麼該事件處理函數就會在新的線程中運行;
如果事件本來就是子線程中發佈出來的,那麼該事件處理函數直接在發佈事件的線程中執行。
(禁止進行UI更新操作)

ThreadMode.ASYNC
無論事件在哪個線程發佈,該事件處理函數都會在新建的子線程中執行。(禁止進行UI更新操作)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章