刷新活动时,倒计时器不应重新启动。

时间:2017-11-27 11:34:10

标签: android native

我正在设计一个应用程序(ABC),在该应用程序中,用户有一个特定的时间在3小时内完成任务。 向用户显示倒数计时器。但是,只要在应用程序之间切换活动(应用程序仍在后台运行)倒计时器重新启动,它就可以正常运行。并显示时间与几毫秒的差异。我想做的是时间不应该刷新。它应该继续它的倒计时。

这是我一直在使用的代码。

 private void mytimer()
{
    final int duration=3600000; //1 hours
    new CountDownTimer(duration, 1000)
    {

        public void onTick(long millisUntilFinished)
        {
            long secondsInMilli = 1000;
            long minutesInMilli = secondsInMilli * 60;
            long hoursInMilli = minutesInMilli * 60;

            long elapsedHours = millisUntilFinished / hoursInMilli;
            millisUntilFinished = millisUntilFinished % hoursInMilli;

            long elapsedMinutes = millisUntilFinished / minutesInMilli;
            millisUntilFinished = millisUntilFinished % minutesInMilli;

            long elapsedSeconds = millisUntilFinished / secondsInMilli;

            String yy = String.format("%02d:%02d",elapsedMinutes,elapsedSeconds);
            R_Time.setText("Remaining Time:"+yy);
        }

        public void onFinish()
        {

            R_Time.setText("Time Finished");
            AlertDialogUtils.showInfo(getContext(),R.string.time_finished__info);

        }

    }.start();
}

2 个答案:

答案 0 :(得分:0)

使用counDownTimer创建服务并继续通知广播接收。在主要活动中注册广播接收器。这样你就可以实现。

答案 1 :(得分:0)

您可以按照以下步骤操作,

  1. 任务启动时将设备时间保存在DB / preference / file中
  2. 启动计时器
  3. 让我们假设您的应用重启。在这里,您需要仅在步骤#3中为X分钟启动CountDownTimer

    1. X分钟的启动计时器=用户的总时间限制 - (存储时间 - 当前时间)