方法一:
Timer/TimeTask 实现
1. 错误的写法!
/* myTimerTask = new TimerTask() { @Override public void run() { //错误写法!!!不能再非UI线程里更新UI!! time_text.setText(String.valueOf(counter)); counter ++; } }; timer.schedule(myTimerTask,1000,1000); */2. 正确的写法:
myTimerTask = new TimerTask() { @Override public void run() { //在UI线程里更新UI runOnUiThread(new Runnable() { @Override public void run() { time_text.setText(String.valueOf(counter)); counter ++; } }); } }; timer.schedule(myTimerTask,1000,1000);
方法二:
Thread sleep()实现
Thread t=new Thread(){ @Override public void run(){ while(!isInterrupted()){ try { Thread.sleep(3000); //1000ms = 1 sec runOnUiThread(new Runnable() { @Override public void run() { counter++; time_text.setText(String.valueOf(counter)); } }); } catch (InterruptedException e) { e.printStackTrace(); } } } }; t.start();
方法三(倒计时):
CountDownTimer实现
new CountDownTimer(10000,1000){ public void onTick(long millisUntilFinished){ time_text.setText(String.valueOf(counter)); counter++; } @Override public void onFinish() { } }.start();