EventBus 遇到的問題彙總

2021-10-20 18:32:34 字數 881 閱讀 9687

由於eventbus傳送的是物件,我們經常構建乙個共用的物件,在共用物件中新增tag,用於方便在接收中區分作用。

例如用eventbushelper工具類傳送eventbusmessage物件。

在傳送粘性事件時,在a場景傳送了一次,然後還沒有接收,然後在b場景又傳送了一次,這時b傳送的粘性事件可以收到,而a場景的粘性事件被替換掉了。

這時因為在eventbus的原始碼中,粘性事件使用map集合儲存,key為 object.getclass(), 當我們自定義eventbusmessage的時候,導致object.getclass()一直是相同的,以至於會替換前一次的key。

public void poststicky(object event) 

// should be posted after it is putted, in case the subscriber wants to remove immediately

post(event);

}

創造多個單獨的物件,用於傳送粘性服務。

上面的方法比較low,還沒有想到比較優雅的方法,有的話分享出來吧。

eg: 使用post/poststicky直接傳遞,在subscribe處接收int,此時收不到訊息。 將int tag改為 integer tag 就能收到。

這時因為eventbus中要求傳遞的為object,object屬於類型別,也就是復合資料型別,int屬於簡單資料型別。

eventbus.getdefault().post(111);

@subscribe(threadmode = threadmode.main)

public void getmessage(int tag)

個人遇到的問題彙總

try catch只對丟擲的異常 有異常丟擲或異常的子類丟擲 有用,在php中你無法使用這個函式捕捉 fatal error。如果你的db變數無法建立資料庫鏈結,我會認為這是fatal error,因為你在這頁面上做任何有意義的事情都離不開db變數。假如不能建立鏈結,pdo會丟擲乙個異常。不過假如你...

MUI遇到的問題彙總

mui是h5跨平台的開發框架,入手學習可以先進入官網瀏覽一下 官網 問題一 ajax請求不到資料 真機除錯 在瀏覽中輸入請求 可以獲取到資料,但是真機除錯console.log type 列印為abort error function xhr,type,errorthrown 解決 1.請求位址不要...

docker login 遇到的問題彙總

當執行 docker login 的時候遇到如下錯誤 error response from daemon get https registry.com 5000 v2 x509 certificate signed by unknown authority通常是因為證書的問題,檢查 etc doc...