gpt4 book ai didi

java - 线程(textView 和进度条)

转载 作者:行者123 更新时间:2023-12-01 13:41:47 25 4
gpt4 key购买 nike

我正在Android中编写一个应用程序,我从麦克风获取数据,它工作正常,我能够保存声音的幅度。我可以更新进度条。

  barraThread = new Thread(new Runnable() {
public void run(){
while (isRecording){
actualizarBarra(getAmplitud());
//lector.setText(String.valueOf(getAmplitud()));

}
}
},"barra Thread");

-其中:actualizarBarra(getAmplitud());用实际幅度更新进度条的值。

我的问题是,如果我尝试从该点更新 textView,我会收到错误(

“Only the original thread that created a view hierarchy can touch its views.”

所以我尝试使用“Handler”并使用“runOnUiThread(new Runnable() {...”来更新textView,但应用程序运行速度非常慢,有时会崩溃。你知道有什么方法可以更新进度条和同时使用textview,以正确的方式吗?,

非常感谢

使用 runOnUiThread 解决方案。

private void actualizarInterfaz() {
runOnUiThread(new Runnable() {
@Override
public void run() {
actualizarBarra(getAmplitud());
lector.setText(String.valueOf(getAmplitud()));
}
});
}

然后循环:

 while(isRecording){
actualizarInterfaz();
}

没有错误,只是应用程序被卡住,所以我在 LogCat 上看不到任何日志,就像正常运行一样,但实际上没有。谢谢

最佳答案

您应该仅在 UI(主)线程上更新 TextView。处理程序方法还可以(还有其他方法)。至于性能问题,我怀疑录音更新过于频繁。尝试在更新 View 时引入延迟,而不是每次都更新

关于java - 线程(textView 和进度条),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20689367/

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