2012-06-25 38 views
0

我刷新定時器中的圖表。當函數刷新圖表時只有一切正常,但是當我向USB通信添加代碼時,只有在函數完成時,圖形纔會更新(一次)。AChartEngine - 在USB通信期間刷新圖表

timer.scheduleAtFixedRate(new TimerTask() { 
public void run() { 
    for (int i = 0; i < data[0].length; i++) { 
     data[0][i] = getRandom(0, 20); 
     data[1][i] = (i + 1); 
    } 

    lineGraph.refreshChart(data[0], data[1]); 
    if (complete[0]) { 
     timer.cancel(); 
     timer.purge(); 
     return; 
    } 

    } 
}, 100, 100); 

// without the following two lines works fine 
usbPacketTransfer.send(); 
recivedData = usbPacketTransfer.recive(); 
+0

有沒有任何相關的代碼後,USB的東西?我對android上的usb一無所知,但是如果在usb之後有任何處理完整數組的事情,它可能會成爲競爭條件。 – larlin

回答

0

您需要將所有網絡操作移出主UI線程。我會建議使用AsyncTaskThread來做到這一點。你的網絡命令阻止了其他運行,這就是爲什麼它只在最後更新。