如何每周更新日期?

时间:2018-03-12 19:42:12

标签: java android weekend

我正在实施每周星期六的倒计时,我希望当计数器达到零(星期六)时,它将在下周六再次激活。但我不知道如何每周更新日期。

我使用的代码如下:

  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();

    }

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

您需要使用警报管理器服务,以便为数据设置每周计划。

有关如何使用AlarmManager的更多信息,请参阅AlarmManager

简要介绍它的作用

  

警报(基于AlarmManager类)为您提供了一种执行方式   在应用程序生命周期之外的基于时间的操作。对于   例如,您可以使用警报启动长时间运行的操作,   例如每天开始一次服务以下载天气预报。

有关时间表警报,请参阅Scheduling Repeating Alarms

编辑:您正在使用倒计时,如果应用程序未打开,该倒计时将停止,警报管理器您将解决此问题,因为它在后台运行。

快乐的编码。