Я создал код, который считывает данные, переданные на мое устройство Android от Arduino. Это выглядит следующим образом:Создание условий внутри 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();
}
}
}
Этот код находится внутри моего «частного класса ThreadConnected расширяет тему»
Теперь значения, принадлежащие string_now являются числами. Я хочу сказать пользователю, что хранимое там значение больше 150 или меньше 50. Вот код, который я пробовал, но я не полностью работаю.
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); }
}
});
Любые советы о том, как я могу сделать эту работу? Спасибо.
«Не полностью работать» не очень полезная информация. Можете ли вы предоставить больше информации о том, что вы ожидаете и что на самом деле происходит? –
Код отображает значения сердечного ритма на tvBPM из прототипа, который я создал. Теперь я хочу, чтобы значения, показанные в tvBPM, были проверены, если они соответствуют условиям (т. Е. Инструкции if else). В настоящее время приложение просто закрывается после нажатия кнопки «Пуск», которая, в свою очередь, направляет поток, содержащий код runOnUiThread(). Извините за мой плохой английский – KCX