我創建了一個代碼,用於從Arduino中讀取投射到我的Android設備的數據。它是這樣的:在Android中創建Runnable中的條件
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繼承Thread」
現在,通過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