Ich habe einen Code erstellt, der Daten auf meinem Android-Gerät von einem Arduino geworfen liest. Es geht so:Erstellen von Bedingungen in einem Runnable in Android
public void run() {
byte[] buffer = new byte[1024];
int bytes;
final StringBuilder readMessage = new StringBuilder();
while (true) {
try {
bytes = connectedInputStream.read(buffer);
final String string_now = new String(buffer, 0, bytes);
readMessage.append(string_now);
// final int finalBytes = bytes;
runOnUiThread(new Runnable() {
@Override
public void run() {
tvBPM.setText(string_now);
readMessage.setLength(0);
}
});
} catch (IOException e) {
Toast.makeText(getApplicationContext(),"Connection Lost!",Toast.LENGTH_LONG).show();
}
}
}
Dieser Code befindet sich in meinem sind
nun die gehaltenen Werte von string_now ‚private Klasse ThreadConnected Thema‘ erstreckt Zahlen. Ich möchte dem Benutzer mitteilen, ob der dort gespeicherte Wert größer als 150 oder kleiner als 50 ist. Hier ist ein Code, den ich ausprobiert habe, aber ich arbeite nicht vollständig.
runOnUiThread(new Runnable() {
@Override
public void run() {
final int getValue = Integer.getValue(Integer.parseInt(string_now));
if (getValue > 150 || getValue < 50) {
Toast.makeText(getApplicationContext, "Unstable", Toast.LENGTH_SHORT).show(); }
else {
tvBPM.setText(string_now);
readMessage.setLength(0); }
}
});
Irgendwelche Tipps, wie ich das schaffen kann? Vielen Dank.
„nicht voll arbeiten“ ist nicht wirklich nützliche Informationen. Können Sie mehr Informationen darüber geben, was Sie erwarten und was tatsächlich passiert? –
Der Code zeigt die Herzfrequenzwerte auf tvBPM von einem Prototyp an, den ich erstellt habe. Jetzt möchte ich die Werte in tvBPM überprüft werden, wenn es die Bedingungen erfüllt (d. H. Die if else-Anweisung). Derzeit wird die App nur geschlossen, nachdem ich den Start-Knopf gedrückt habe, der wiederum den Thread mit dem runOnUiThread() - Code anleitet. Sorry für mein schlechtes Englisch – KCX