前言:
在正式的开发中很多情况需要倒计时,但是有些写在本地的倒计时,容易出现用户更改手机时间,倒计时就不那么精准了。所以我们需要获取到的是服务器的时间来执行倒计时。
1.思路
>请求服务器接口,获取服务器返回的一个时间。
>执行倒计时
>这里假设时间是秒,那么换算成xx分钟xx秒,显示到控件
2.简单实现
由于代码比较简单,就直接上代码:
class TimeCount extends CountDownTimer {
public TimeCount(long millisInFuture, long countDownInterval) {
super(millisInFuture, countDownInterval);// 参数依次为总时长,和计时的时间间隔
}
@Override
public void onFinish() {// 计时完毕时触发
}
@Override
public void onTick(long millisUntilFinished) {// 计时过程显示
String time = Utils.changeTime((int) millisUntilFinished / 1000);
text.setText("请在"+time+"内完成付款");
}
}
自定义一个类实现因为我们是倒计时,所以实现CountDownTimer,当然计时器就实现另外一个类即可。
time = new TimeCount(petResponse.left_time*1000, 1000);
初始化计时器:参数如上第一个总时间单位是毫秒,第二个是倒计时的时间间隔,一般是一秒也就是1000毫秒。
time.start();
在需要开始计时的地方执行,即可启动计时器。
比较简单就不做过多的描述!