android 利用CountDownTimer实现时分秒倒计时效果
相信很多小伙伴在开发过程中都遇到需要计时等操作,但是大部分在选择定时器的时候都是使用Android sdk和java jdk自带的Timer,和TimerTask类比较多,但是Android sdk也给我们提供了一个更加强大的功能类,CountDownTimer.效果如下:
来看主要代码:
package com.example.zsh.mycountdowntimerdemo;
import android.os.Bundle;
import android.os.CountDownTimer;
import android.support.v7.app.AppCompatActivity;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView mTvCountdowntimer;
//24小时换算成毫秒
private int timeStemp = 86400000;
private CountDownTimer timer;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
getCountDownTime();
}
private void getCountDownTime() {
timer = new CountDownTimer(timeStemp, 1000) {
@Override
public void onTick(long l) {
long day = l / (1000 * 24 * 60 * 60); //单位天
long hour = (l - day * (1000 * 24 * 60 * 60)) / (1000 * 60 * 60); //单位时
long minute = (l - day * (1000 * 24 * 60 * 60) - hour * (1000 * 60 * 60)) / (1000 * 60); //单位分
long second = (l - day * (1000 * 24 * 60 * 60) - hour * (1000 * 60 * 60) - minute * (1000 * 60)) / 1000;//单位秒
mTvCountdowntimer.setText(hour + "小时" + minute + "分钟" + second + "秒");
}
@Override
public void onFinish() {
//倒计时为0时执行此方法
}
};
timer.start();
}
private void initView() {
mTvCountdowntimer = (TextView) findViewById(R.id.tv_countdowntimer);
}
}