簡體   English   中英

Greenrobot Eventbus Android中的事件是否排隊?

[英]Does events in greenrobot Eventbus android gets queued?

由於Android平板電腦通過USB,我正在從arduino接收數據。

在我的主要活動中,我有一個偵聽器,當新數據通過USB到達時,該偵聽器執行一個功能。

問題是該函數需要一段時間才能執行,但是一旦有新數據到達,該函數就會再次被觸發。 我正在以115200 bps的速率連續從USB傳輸數據。

為了解決這個問題,我嘗試使用greenrobot事件總線。 當新數據到達時,將發布一個新事件,該事件將由服務訂閱。

我懷疑事件是否排隊等待上一個事件完全執行。

簡單來說, EventBus流程是一條單向路- 發布者發布事件(消息),並且將通知該事件類型的所有訂閱者

發布者甚至不知道訂閱了哪些類(如果有的話),只有EventBus知道這一點,更不用說訂閱者是否已基於Event觸發器啟動或完成了執行代碼。

我的建議是將一個標志放在函數代碼的開頭(在末尾設置false),該標志在onEvent()中檢查以檢查是否調用該函數。

如果您需要將這些事件排隊,則需要自己處理。 首先看一下Arraydeque / Deque系列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM