今天在用eventbus的時候,突然發現訊息發不出去了!!!
eventbus的使用本身不難,突然碰到這種情況有點懵逼。
google了一下,也沒找到答案。
@subscribe(threadmode = threadmode.main)沒辦法只能打個斷點看原始碼了。fun
onhit*******1(replacefragment: replacefragmentevent) }}
注意看我圈出來的if語句,判斷post的狀態。
從命名可以看出,當eventbus處於post狀態中時是不能繼續執行下面**的。
再看看上面貼出的**可以發現,我是在subscribe(接收事件)方法中傳送訊息的。
所以**雖然執行了,但是訊息並沒有發出去。
具體原因可能跟eventbus的一些機制有關,需要仔細閱讀eventbus的原始碼才能找到原因。
請自行分析原始碼。
EventBus3 0簡單使用
1.build.gradle新增引用 compile org.greenrobot eventbus 3.0.0 2.定義乙個事件型別 public classfirstevent publicstring getmsg 3.訂閱 解除訂閱 訂閱在oncreate中訂閱 eventbus.getde...
EventBus3 0原始碼解析
eventbus的註冊 eventbus.getdefault register this 那麼我們來看一下eventbus.getdefault 到底做了一下什麼操作 public static eventbus getdefault return defaultinstance 就是拿到了eve...
EventBus3 0 使用(非原創)
寫完上篇文章,這篇這心不想寫了,但是每週至少一篇的習慣不能改啊!雖然eventbus使用起來很簡單,但是種類特別多,比如他有粘性事件和非粘性事件,他們又都含有四種模式,並且還要測試在ui執行緒和非ui執行緒,所以情況很多種,廢話不多說繼續看。1 eventbus工具類,這裡為了使用方便寫了乙個簡單的...