Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
//执行的内容
}
}, 3000);//表示3秒后执行
Timer timer = new Timer();
timer.schedule(new TimerTask()
{
@Override
public void run()
{
//执行的内容
}
}, 0, 2000);//0表示立即执行,2000表示每隔两秒执行一次
注意,执行的内容中不能直接对界面上的元素进行操作,也就是说,不能直接去访问UI thread。
如果想要更新UI可以使用view.postDelayed这个很实用的方法:
int currentSeconds = 60;
/**
* 记录时间
* */
private void startTimer(final TextView btnForgetPassword) {
this.getWindow().getDecorView().postDelayed(new Runnable() {
@Override
public void run() {
currentSeconds--;
if (currentSeconds > 0) {
btnForgetPassword.setText(String.format("取回密码(%d)", currentSeconds));
startTimer(btnForgetPassword);//递归
} else {
btnForgetPassword.setText("取回密码");
btnForgetPassword.setEnabled(true);
}
}
}, 1000);
}
上面实现的是TextView的60秒倒计时功能。