【筆記】EventBus簡單使用Demo

EventBus很早就已經流行並使用了,但是由於種種原因一直沒踩坑。


EventBus是針對Android的發佈/訂閱事件總線。

EventBus3.0是當前最新的版本,它與之前版本相比較,加入了註解使代碼更加簡潔,使用更加方便。

主要功能:

在Activity,Fragment和線程之間傳遞消息。

優點:

1、簡化了組件之間的通訊(解耦了發送者和接受者,避免了複雜和容易出錯的依賴和生命週期問題)

2、使代碼更加簡潔優雅;

3、體積小;

4、擁有線程交付和用戶優先級等功能;


踩坑

1、直接定義的接受粘性事件方法會在onCreate方法前執行;

2、接受數據類型時,必須使用對象,int.class不能接受到數據類型是Integer的消息;


簡單使用

發送普通事件

EventBus.getDefault().post("Main1");

接受普通事件

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void setValue(String val) {
        tvValue.setText(val);
    }


發送粘性事件,給未來用戶使用

EventBus.getDefault().postSticky(123);
接受粘性事件,方法調用接受和註解

EventBus.getDefault().removeStickyEvent(Integer.class)
    @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
    public void setValueStrick(Integer val) {
        Log.i(TAG, "Strick:" + val);
    }

源碼




發佈了69 篇原創文章 · 獲贊 13 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章