0

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

我正在使用的代码如下:

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

    }

谢谢您的帮助。

4

1 回答 1

2

您需要警报管理器服务才能做到这一点,这样您就可以为您的数据设置每周计划。

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

简要介绍它的作用

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

有关计划警报,请参阅计划重复警报

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

快乐编码。

于 2018-03-12T20:07:28.157 回答