私はアンドロイドでアプリケーションに取り組んでいます。そして、バックグラウンド スレッドから UI にデータを更新しようとしています。ただし、いくつかの理由で機能しません。誰でもエラーを見つけたり、より良い解決策を提案したりできますか? Thread を使用して Bluetooth ソケットからデータを読み取り、RunOntheUI で UI を更新しました。コードは次のとおりです。
socket = belt.createRfcommSocketToServiceRecord(UUID_SECURE);
socket.connect();
stream = socket.getInputStream();
// final int intch;
Thread timer2 = new Thread() { // Threads - do multiple things
public void run() {
try {
// read data from input stream if the end has not been reached
while ((intch = stream.read()) != -1) {
byte ch = (byte) intch;
b1.append(ByteToHexString(ch) +"/");
decoder.Decode(b1.toString());
runOnUiThread(new Runnable() {
public void run()
{
// update the uI
hRMonitor.SetHeartRateValue((int) decoder.GetHeartRate());
}
});
Thread.sleep(1000);
}
} catch (Exception e) {
e.printStackTrace();
}
}};
timer2.start();