[英]Android Countdown Timer Thread.sleep();
我正在尝试使用倒数计时器创建电路计时器。 当线程处于睡眠状态时,我希望文本显示“ Change!”。 并在倒数计时器再次启动前显示5秒钟。 我不确定如何使它工作。 我知道线程正在休眠,因此不会显示“更改!” 直到5秒钟后又醒来。 但是我不明白如何按照我希望的方式工作。 谁能帮我解决这个问题?
public void onFinish()
{
// Text to be displayed when thread is sleeping
time.setText("Change!");
try
{
Thread.sleep(5000);
}
catch (InterruptedException e)
{
// TODO Auto-generated catch block
e.printStackTrace();
}
if (numberOfCircuits != 15)
{
start();
numberOfCircuits++;
}
else
{
countDownTimer.cancel();
}
}
不用让主线程进入睡眠状态(您可能会看到一个ANR对话框),而是可以使用一个计时器,该计时器可以将5秒钟的延迟通知您,并且您可以再次安排CountDownTimer。
public void onFinish()
{
// Text to be displayed when thread is sleeping
time.setText("Change!");
new Timer("Sleeper").schedule(new TimerTask() {
@Override
public void run() {
if (numberOfCircuits != 15)
{
start();
numberOfCircuits++;
}
else
{
countDownTimer.cancel();
}
}
}, 5000); // 5 sec delay
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.