Я делаю приложение, которое устанавливает USB-связь между Arduino UNO R3 и планшетом Android. Плата Arduino правильно отправляет данные, и они даже правильно принимаются планшетом, и при попытке отобразить текст печатается, но с довольно непрерывным мерцанием.
class MyThread extends Thread
{
@Override
public void run()
{
mCallback = new UsbSerialInterface.UsbReadCallback()
{ //Defining a Callback which triggers whenever data is read.
@Override
public void onReceivedData(byte[] arg0) //data received in bytes
{
String data = null;
try
{
data = new String(arg0, "UTF-8");
handler.post(new newthread(data));
}
catch (UnsupportedEncodingException e)
{
e.printStackTrace();
}
}
};
}
}
class newthread implements Runnable
{
String str1;
public newthread(String STR1)
{
str1 = STR1;
}
@Override
public void run()
{
DoseRateDisplay = (TextView) findViewById(R.id.DoseRateDisplay);
if(str1.contains("L"))
{ tv6.append("Health OK"); }
else
{
DoseRateDisplay.settext(str1);
}
}
}
Я думаю, что причина мерцания может быть в том, что данные поступают слишком быстро. Использование Thread.sleep не помогает. Каким может быть возможное решение этой проблемы? Кроме того, использование append вместо settext не вызывает проблем с мерцанием, но тогда данные добавляются в текстовое представление.
TextView
, и не устанавливать его снова. - person yennsarah   schedule 05.07.2016