您的位置:首页 > 移动开发 > Android开发

Timer和CountDownTimer的使用

2017-01-04 22:44 267 查看
下面封装的2个方法都是用于倒计时,之前是用Timer封装的,后来才发现Android已经封装好一个类:CountDownTimer。

Timer定时器的使用

/**
* 倒数计时(自己封装的)
* @param time 倒数的时间(s)
*/
private void countDown(final int time) {
//定时器
final Timer timer = new Timer();
//定时器线程
TimerTask timerTask=new TimerTask() {
@Override
public void run() {
countDownFlag++;
if (countDownFlag >= time) {
timer.cancel();//取消定时器
countDownFlag=0;
//时间到后跳转界面
Intent intent = new Intent(InitActivity.this,MainActivity.class);
startActivity(intent);
finish();
}else{
Message message = new Message();
message.what=COUNT_DOWN;
message.obj=(time-countDownFlag)+"秒后跳转";
handler.sendMessage(message);
}
}
};
//启动定时器,第二个参数代表几时开始,第三个参数代表每隔多少毫秒开始重复运行
timer.schedule(timerTask,0,1000);
}


CountDownTimer的使用

/**
* 倒计时(原本就封装好的)
* @param time 倒数的总时间(ms)
*/
private void autoCountDown(long time) {
//第一个参数代表总时间,第二个参数代表间隔时间,间隔时间到自动调用onTick方法,时间到自动调用onFinish方法
CountDownTimer countDownTimer=new CountDownTimer(time,1000) {
@Override
public void onTick(long millisUntilFinished) {
String text=(millisUntilFinished/1000)+"秒后跳转";
btn_init_text.setText(text);
}

@Override
public void onFinish() {
Intent intent = new Intent(InitActivity.this,MainActivity.class);
startActivity(intent);
finish();
}
};
countDownTimer.start();
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Android