EventBus 使用 Sticky粘性傳值事件

2021-10-04 20:46:12 字數 826 閱讀 7642

eventbus 使用基本步驟

依賴: implementation 『org.greenrobot:eventbus:3.0.0』

1.註冊與解除註冊

override fun onstart() 

override fun onstop()

2.建立訊息類

class eventmessbean

}

3.傳送

eventbus.getdefault().post(eventmessbean(「1」))

eventbus.getdefault().poststicky(eventmessbean(「2」))//粘性傳值

注意:sticky事件一般用在我們不確認訂閱關係是否存在,但是想提前傳送廣播時。

針對sticky事件 eventbus會快取在事件發射佇列,若是訂閱關係已經存在則發射出去,但不會銷毀。下次再次訂閱,會繼續接收上一次事件。

解決方法:

在接收到廣播後執行銷毀

eventbus.getdefault().removestickyevent(event);

4.接收

@subscribe(threadmode = threadmode.main)

fun refreshhomeevent(event: eventmessbean)

//粘性傳值接收

@subscribe(threadmode = threadmode.main,sticky = true)

fun refreshhomeevent(event: eventmessbean) {

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...