我试图每半秒运行一次 for 循环。循环每次调用时都会更改视图中的某些内容,但更改是由另一个类(即 Speedometer)进行的。
Thread thread=new Thread(){
@Override
public void run() {
float i;
try {
for ( i = 0; i <= 100; i++) {
Speedometer1.onSpeedChanged(Speedometer1.getCurrentSpeed(i) + 8);
Speedometer2.onSpeedChanged(Speedometer2.getCurrentSpeed(i) + 8);
Speedometer3.onSpeedChanged(Speedometer3.getCurrentSpeed(i) + 8);
Speedometer4.onSpeedChanged(Speedometer4.getCurrentSpeed(i) + 8);
Speedometer5.onSpeedChanged(Speedometer5.getCurrentSpeed(i) + 8);
Speedometer6.onSpeedChanged(Speedometer6.getCurrentSpeed(i) + 8);
sleep(500);
}
}
catch (InterruptedException e)
{e.printStackTrace();}
}
};thread.start();
原文由 Ariel 发布,翻译遵循 CC BY-SA 4.0 许可协议
那是因为任何视图只能在主线程或 ui 线程中修改。尝试运行
onSpeedChanged()
使用runOnUiThread()
。像这样: