每次您的计时器运行时,它都会执行从0到30的循环,因此仅在循环结束时才刷新UI。您需要将i保留为成员,并在每次
run这样调用该方法时对其进行更新:
Timer timer = new Timer(); TimerTask task = new TimerTask(){ private int i = 0; public void run(){ if (i <= 30) { lblTimer.setText("" + i++); } } }; timer.scheduleAtFixedRate(task, 0, 1000); //1000ms = 1sec当然,一旦达到i = 30,您就应该取消时间,否则它仍然会每秒运行一次,但没有实际效果或需求。



