使用EventBus代替Bundle傳遞引數。

2021-07-10 18:44:29 字數 1148 閱讀 5779

//註冊

eventbus.getdefault().register(this);

//反註冊

eventbus.getdefault().unregister(this);

//post方法

eventbus.getdefault().post(obj);

//接收方法

//如果使用onevent作為訂閱函式,那麼該事件在哪個執行緒發布出來的,onevent就會在這個執行緒中執行//,也就是說發布事件和接收事件執行緒在同乙個執行緒。使用這個方法時,在onevent方法中不能執行耗時//操作,如果執行耗時操作容易導致事件分發延遲。

public void onevent(param)

//如果使用oneventmainthread作為訂閱函式,那麼不論事件是在哪個執行緒中發布出來的,//oneventmainthread都會在ui執行緒中執行,接收事件就會在ui執行緒中執行,這個在android中是非常有//用的,因為在android中只能在ui執行緒中跟新ui,所以在onevnetmainthread方法中是不能執行耗時操//作的。

public void oneventmainthread(param)

//如果使用oneventbackgrond作為訂閱函式,那麼如果事件是在ui執行緒中發布出來的,那麼//oneventbackground就會在子執行緒中執行,如果事件本來就是子執行緒中發布出來的,那麼//oneventbackground函式直接在該子執行緒中執行。

public void oneventbackgroundthread(param)

//使用這個函式作為訂閱函式,那麼無論事件在哪個執行緒發布,都會建立新的子執行緒在執行//oneventasync.

public void oneventasync(param)

原理解析:

register是掃瞄當前onevent開頭的方法,存入佇列。

post方法,在佇列中尋找引數相同的onevent開頭方法,傳遞資料。

注意事項:

在activity之間傳遞的時候,在startactivity之後要在onstop中呼叫post方法。因為被啟動的activity中的register是寫在oncreate方法中的,注意先註冊後傳遞的原則。

EventBus簡單使用

eventbus是乙個開源的是乙個發布 訂閱的事件的框架,在業界即使沒有用過,也肯定聽過,要是真沒聽過,那從現在起你就聽說了。框架主要包含4個成分 發布者,訂閱者,事件,匯流排。訂閱者可以訂閱事件,傳送者發布事件,讓你的元件徹底解耦。使用姿勢 引入compile org.greenrobot eve...

EventBus 使用注意

接觸eventbus後,發現他在處理通訊問題時非常便捷,所以在專案中使用了。使用過程中還是遇到不少問題。記錄下。在處理netty 通訊時,根據獲取到的資訊更新懸浮框的內容顯示,發現eventbus並不能更新ui,檢視eventbus介紹,發現在訂閱方法時在subscribe註解中總共有3個引數,預設...

關於eventbus的使用

evenbus目前為止在開發過程中使用比較平凡,用法比較簡單 一 首先要建乙個實體類 class 功能 public class eventbus model public class event msg public void setmsg string msg 二 發布乙個訊息 eventbus...