gpt4 book ai didi

java - 为什么 Sleep 首先执行,而不是 android 中它上面的代码?

转载 作者:太空狗 更新时间:2023-10-29 15:39:03 25 4
gpt4 key购买 nike

为什么先执行 try block ,我希望颜色先改变然后它应该 hibernate 5000 毫秒。我的意思是系统在颜色改变之前就睡着了。private OnClickListener CheckAnswer =new OnClickListener() {

    public void onClick(View arg0) {
// TODO Auto-generated method stub

disableButtons();
Button incoming=(Button) arg0;
if(incoming.getText().toString().equals(Q.getAnswer()))
{
incoming.setBackgroundColor(Color.GREEN);
correct++;
score+=15;
}
else
{
incoming.setBackgroundColor(Color.RED);
wrong++;
if(C1.getText().toString().equals(Q.getAnswer()))
C1.setBackgroundColor(Color.GREEN);
else if(C2.getText().toString().equals(Q.getAnswer()))
C2.setBackgroundColor(Color.GREEN);
else if(C3.getText().toString().equals(Q.getAnswer()))
C3.setBackgroundColor(Color.GREEN);
modifyScore();

}
try {
Thread.sleep(5000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
questionGenerator();
}
};`

最佳答案

我猜是因为 View 的属性已更新,但屏幕重绘却卡在了你的 sleep 之后。不要在主线程上 hibernate 。

而是在您的 Activity 的 onCreate 中创建一个 Handler,并向其发送一个延迟的 Runnable。

private Handler mHandler;
protected void onCreate(Bundle savedInstanceState) {
mHandler = new Handler();
}
...
private OnClickListener CheckAnswer = new OnClickListener() {
public void onClick(View view) {
// fix up view
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
questionGenerator();
}
}, 10000);
}
}

关于java - 为什么 Sleep 首先执行,而不是 android 中它上面的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854039/

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