Android EventBus是什么?
Android EventBus是一個發布/訂閱者模式(Publisher/Subscriber)的輕量級消息框架,它對應的的git地址和官網如下:
Android EventBus能解決什么問題?
- 簡化了組件間的通訊。
- 分離了事件的發送者和接受者。
- 避免了復雜的和易錯的依賴關系和生命周期問題。
- 能夠有助于單元測試
網上說EventBus可以代替Android傳統的Intent,Handler,Broadcast或接口函數,在Fragment,Activity,Service線程之間傳遞數據,這個具體的到實際使用中,大家還是得根據自己的實際需要來自行判斷。
Android EventBus具體該怎么使用?
一、導入依賴包
- IDE和構建工具:androidstudio Gradle
- EventBus版本號:3.0.0
找到gradle配置文件build.gradle(Module:app),注意是app的配置文件,然后在dependencies添加如下配置,然后如下圖所示點擊sync,重新下載并導入依賴的EventBus包
compile 'org.greenrobot:eventbus:3.0.0'
二、定義事件消息類
public class MessageEvent {
public final String message;
public MessageEvent(String message) {
this.message = message;
}
}
三、注冊和取消事件
EventBus.getDefault().register(this);
EventBus.getDefault().unregister(this);
四、訂閱者處理事件
@Subscribe(threadMode = ThreadMode.MAIN) //在ui線程執行
public void onMessageEvent(MessageEvent event) {
Toast.makeText(this, event.message, Toast.LENGTH_SHORT).show();
}
五、發布者發布事件
EventBus.getDefault().post(new MessageEvent("你好"));