我正在制作简单的测验应用程序,现在有一个等待的问题。 当用户点击四个可能答案中的一个时,它应该变成橙色,两秒后变成红色或绿色(正确或错误答案)。这里是我的代码部分:Android:睡眠不适用于UI更改
public void clickButton(View v) {
changeButton(v, getResources().getDrawable(R.drawable.btn_orange));
try {
//Thread.sleep(2000);
TimeUnit.SECONDS.sleep(2);
} catch (InterruptedException r) {}
changeButton(v, getResources().getDrawable(R.drawable.btn_red));
}
我试过线程睡眠或睡眠TIMEUNIT,但在这两种情况下,该按钮将变为默认的白色“点击”阶段,两秒钟后,红色 - 完全跳过橙色部分。我检查了其他颜色,所以这些颜色xml文件中没有问题。问题可能在那个睡眠的某个地方,但我不知道我应该用什么来延迟红色,仍然是橙色。 thx咨询
你不应该在主线程上睡觉,看看View.postDelayed() – panini 2014-09-18 22:04:48
其实你不得在UI线程上睡觉。 – rupps 2014-09-18 22:13:28