Android 如何设置特定时间的倒计时计时器
我有一个类,它获取两个时间值,并通过使用系统的当前时间发现给定的时间间隔存在于时间范围内。现在我想设置一个倒计时计时器,它应该计算特定时间间隔的剩余时间。有人能告诉我如何设置倒计时来计算代码中“精确时间”的剩余时间吗Android 如何设置特定时间的倒计时计时器,android,Android,我有一个类,它获取两个时间值,并通过使用系统的当前时间发现给定的时间间隔存在于时间范围内。现在我想设置一个倒计时计时器,它应该计算特定时间间隔的剩余时间。有人能告诉我如何设置倒计时来计算代码中“精确时间”的剩余时间吗 // start time String string1 = date + " 20:30:00"; Date time1 = new SimpleDateFormat("MM-dd-yyHH:mm:ss").parse(string1); Calendar calendar1
// start time
String string1 = date + " 20:30:00";
Date time1 = new SimpleDateFormat("MM-dd-yyHH:mm:ss").parse(string1);
Calendar calendar1 = Calendar.getInstance();
calendar1.setTime(time1);
// end time
String string2 = date + " 06:30:00";
Date time2 = new SimpleDateFormat("MM-dd-yy HH:mm:ss").parse(string2);
Calendar calendar2 = Calendar.getInstance();
calendar2.setTime(time2);
// exact time
String string3 = date + " 04:36:00";
Date F = new SimpleDateFormat("MM-dd-yy HH:mm:ss").parse(string3);
Calendar c3 = Calendar.getInstance();
c3.setTime(F);
您可以使用倒计时来执行此操作。下面是一个可以实现的倒计时类
public class MyCountDownTimer extends CountDownTimer {
public MyCountDownTimer(long millisInFuture, long interval) {
super(millisInFuture, interval);
}
@Override
public void onFinish() {
my_textview.setText("Time's up!");
}
@Override
public void onTick(long millisUntilFinished) {
my_textview.setText("" + millisUntilFinished / 1000); //Shows no. of seconds left
//Uses a textview to update status
}
}
您可以在活动中使用此类。在活动内部,您可以实现这一点
CountDownTimer countDownTimer = new MyCountDownTimer(millisInFuture, interval);
//In this case
//CountDownTimer countDownTimer = new MyCountDownTimer(50000, 1000);
这里的millisInFuture是启动计时器时“特定时间间隔的剩余时间”,单位为毫秒。
假设在这种情况下,剩下的时间是50秒。那么这个值就是50000
interval是要提供更新的时间(以毫秒为单位)。(即,如果使用1000作为间隔,计时器将每1秒更新一次)
在这种情况下
onTick(long millisUntilFinished)
每1秒调用一次,这将为倒计时计时器提供以毫秒为单位的剩余时间。millisUntilFinished参数在第一次调用时为您提供49000(即还剩49秒),依此类推
计时器完成倒计时后,将调用onfinish()
您可以以任何方式显示此信息。我只是在文本视图中显示了它
剩下的唯一一步就是实际启动倒计时。
countDownTimer.start()代码>
这里还有一个关于倒计时的好教程 哇,非常感谢,这对我很有效,也感谢你的解释。