我正在实施每周星期六的倒计时,我希望当计数器达到零(星期六)时,它将在下周六再次激活。但我不知道如何每周更新日期。
我使用的代码如下:
private void CountDown() {
SimpleDateFormat formatter = new SimpleDateFormat("dd.MM.yyyy, HH:mm:ss");
formatter.setLenient(false);
String endTime = "12.03.2018, 15:05:36";
Date endDate;
try {
endDate = formatter.parse(endTime);
milliseconds = endDate.getTime();
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
startTime = System.currentTimeMillis();
diff = milliseconds - startTime;
mCountDownTimer = new CountDownTimer(milliseconds, 1000) {
@Override
public void onTick(long millisUntilFinished) {
startTime=startTime-1;
Long serverUptimeSeconds =
(millisUntilFinished - startTime) / 1000;
String daysLeft = String.format("%d", serverUptimeSeconds / 86400);
txtdays.setText(daysLeft);
String hoursLeft = String.format("%d", (serverUptimeSeconds % 86400) / 3600);
txthour.setText(hoursLeft);
String minutesLeft = String.format("%d", ((serverUptimeSeconds % 86400) % 3600) / 60);
txtmins.setText(minutesLeft);
String secondsLeft = String.format("%d", ((serverUptimeSeconds % 86400) % 3600) % 60);
txtsec.setText(secondsLeft);
}
@Override
public void onFinish() {
}
}.start();
}
感谢您的帮助。
答案 0 :(得分:2)
您需要使用警报管理器服务,以便为数据设置每周计划。
有关如何使用AlarmManager的更多信息,请参阅AlarmManager
简要介绍它的作用
警报(基于AlarmManager类)为您提供了一种执行方式 在应用程序生命周期之外的基于时间的操作。对于 例如,您可以使用警报启动长时间运行的操作, 例如每天开始一次服务以下载天气预报。
有关时间表警报,请参阅Scheduling Repeating Alarms
编辑:您正在使用倒计时,如果应用程序未打开,该倒计时将停止,警报管理器您将解决此问题,因为它在后台运行。
快乐的编码。