Android - EventBus消息總線

1、簡介

EventBus是一個Android端優化的pubish/subscribe消息總線,簡化了應用程序內各組件之間,組件與後臺線程間的通訊。
好比請求網絡,等網絡返回時Handler或BroadCast通知UI,兩個Fragment之間須要經過Listener通訊,這些需求均可以經過EventBus實現。

2、Github

`https://github.com/greenrobot/EventBus`

3、使用步驟

1.添加jar包到libs文件夾下
2.註冊
EventBus.getDefault().register(this)
3.解註冊(防止內存泄露)
EventBus.getDefault().unregister(this)
4.構造發送消息類
5.發佈消息
EventBus.getDefault().post(new MessageEvent("hahaha","12345"))
6.接收消息
ThreadMode.MAIN : 
表示這個方法在主線程中執行
ThreadMode.BACKGROUND : 
表示該方法在後臺執行,不能併發處理
ThreadMode.ASYNC:
也表示在後臺執行,能夠異步併發處理
ThreadMode.POSTING:
表示該方法和消息發送發在同一個線程執行(發送發和接收方都在同一個線程處理,如:發送發在主線程,接收方也在主線程)

4、粘性事件

註釋:
以前的使用方法都是須要先註冊(register)再post,才能接收到事件;
若是使用postSticky發送事件,那麼能夠不須要先註冊,也能接收到事件。

1. 構造發送信息類
2. 發佈消息EventBus.getDefault().postSticky(new StickyEvent("我是粘性事件"));
1. 接收消息
1. 註冊 EventBus.getDefault().register(CActivity.this);
1. 解註冊

5、例子

  1. 主線程發送消息
  2. 發送粘性事件
相關文章
相關標籤/搜索