Android自助餐之EventBus框架
查看全套目錄
下載完整源代碼
配置build.grandle
compile 'de.greenrobot:eventbus:2.4.0'
實例化EventBus
eventBus=EventBus.builder().build();
註冊事件監聽
eventBus.register(this);
this爲事件接收者(消費事件、處理事件…隨便怎麼說吧)
定義被傳遞的事件類
注意要定義一個類,這個類可以隨便定義,也可以用現有的類
class Event{
public String result="default";
}
發送事件
eventBus.post(event);
可以再任意線程任意位置發送事件,但要保證eventBus
在註冊和發送時爲同一個對象。
處理時間
在註冊時的this
的類中寫如下方法
- public void onEventMainThread(Event event){}
接到事件後在主線程消費事件
- public void onEvent(Event event){}
接到事件後在事件post的線程中消費事件(注意不能進行耗時操作,否則影響事件傳遞)
- public void onEventBackgroundThread(Event event){}
在後臺線程中消費事件。如果事件的post線程爲後臺線程,則使用post線程,否則在新的子線程中消費事件
- public void onEventAsync(Event event){}
在新的子線程中消費事件