2016-09-16 55 views

回答

2

要排隊請求,你可以創建一個具有請求列表的隊列類。

每次您想要發出請求時,將其添加到隊列中並開始處理隊列(如果隊列尚未處理)。處理完當前項目後,請檢查是否還有要處理的項目並繼續處理它們。

如果其中一個請求卡住了,您可能還需要添加超時。如何你可以使用一個處理程序處理隊列

示例代碼:

private void startProcessingQueue() { 
    if (queueIsRunning) { 
     return; 
    } 

    queueIsRunning = true; 
    h.postDelayed(new Runnable(){ 
     public void run(){ 
      processQueue(); 

      if(queue.isEmpty()) { 
       queueIsRunning = false; 
       return; 
      } 

      h.postDelayed(this, QUEUE_PROCESSING_DELAY); 
     } 
    }, QUEUE_PROCESSING_DELAY); 
} 
0

退房NordicSemiconductors開源項目Puck Central,或者更具體地說是GattManager class,誰完美地展示瞭如何隊列中的所有GATT操作。

但是,如果你不想處理這種低級藍牙特定的細節,我可以推薦偉大的庫RxAndroidBle,它爲你做了很多繁重的工作。