gpt4 book ai didi

java - Android 中的线程问题

转载 作者:行者123 更新时间:2023-12-01 15:18:22 25 4
gpt4 key购买 nike

我正在开发 Android 中的应用程序。我正在尝试从后台线程将数据更新到 UI。但是,由于某些原因它不起作用。任何人都可以指出错误或提出任何更好的解决方案吗?我使用 Thread 从蓝牙套接字读取数据并使用 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();

最佳答案

使用

Your_Current_Activity.this.runOnUiThread(new Runnable() {
@Override
public void run() {
hRMonitor.SetHeartRateValue((int) decoder.GetHeartRate());
}
});

而不是

runOnUiThread(new Runnable() {
public void run()
{
// update the uI
hRMonitor.SetHeartRateValue((int) decoder.GetHeartRate());
}
});

关于java - Android 中的线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11318805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com