Я хотел отображать данные в реальном времени через http://www.android-graphview.org/ для данных получено в потоке Bluetooth.
Код темы:
InputStream tmpIn = mSocket.getInputStream();
while (true) {
try {
BufferedReader r = new BufferedReader(new InputStreamReader(tmpIn));
String line;
while ((line = r.readLine()) != null) {
final String tmp = line;
runOnUiThread(new Runnable() {
@Override
public void run() {
addData(Integer.parseInt(tmp));
}
});
}
} catch (IOException e) {
Log.e("BT",
"BtConnectionThread run while loop: problem reading");
e.printStackTrace();
break;
}
}
}
Код активности:
public void addData(int data){
series.appendData(new DataPoint(lastx,data),true,winSize);
lastx++;
}
Это работает отлично, но со временем становится очень медленным. Поток BT получает данные с частотой 100 Гц — после первых нескольких сотен наборов данных использование памяти становится огромным, и график начинает отставать. Есть ли обходной путь или альтернативная реализация кольцевого буфера?
Кроме того, я хотел отключить легенду по оси X, но не смог найти команду для ее архивирования.
С уважением, Лукас