用CountDownTimer实现商品秒杀的倒计时 效果如图
具体代码
long dataTime = System.currentTimeMillis(); //当前时间
long goodsEndTime = DateUtils.dateToStamp(data.endTime);//商品的结束时间
long time = goodsEndTime - dataTime;//需要倒计时的时间
//创建CountDownTimer 来实现计时操作
countDownTimer = new CountDownTimer(time, 1000) {
public void onTick(long millisUntilFinished) {
String[] minuteSecond getMinuteSecond(millisUntilFinished);
setGoodsSeckillDate(minuteSecond[0], minuteSecond[1], minuteSecond[2], minuteSecond[3]);
}
public void onFinish() {
//倒计时结束 时间全部为0
setGoodsSeckillDate("00", "00", "00", "00");
}
}.start();
/**
* 倒计时事件 设置到对应控件
*/
private void setGoodsSeckillDate(String day, String hour, String minute, String second) {
tv_end_time_day.setText(day);
tv_end_time_hour.setText(hour);
tv_end_time_minute.setText(minute);
tv_end_time_second.setText(second);
}
/**
* 将毫秒数换算成 00:00 形式
*/
public static String[] getMinuteSecond(long time) {
int ss = 1000;
int mi = ss * 60;
int hh = mi * 60;
int dd = hh * 24;
long day = time / dd;
long hour = (time - day * dd) / hh;
long minute = (time - day * dd - hour * hh) / mi;
long second = (time - day * dd - hour * hh - minute * mi) / ss;
String str