如何在应用程序启动时设置倒数计时器的值

How to set the value of count down timer on app start

嘿,我有一个倒数计时器,我用来向用户显示我的应用程序还剩多少时间。但是现在我想如果计时器 运行 持续 1 分钟并且用户在 30 秒后关闭应用程序并且在接下来的 5 秒内用户再次打开应用程序那么时间应该从剩余的 25 秒 [=] 开始 运行 11=]

    CountDownAdapter countDown = new CountDownAdapter(60*1000, 1000);
                countDown.setSourceActivity(MainActivity.this);
                countDown.start();

 public void onCountDownTimer(long millisUntilFinished)
    {
        secondsLefts = millisUntilFinished;
        long secondsLeft = millisUntilFinished / 1000;
        long hours = secondsLeft / 3600;
        long minutes = (secondsLeft % 3600) / 60;
        long seconds = secondsLeft % 60;
       timerText = hours + "h: "+minutes + "m: "+seconds + "s";

        if(timerText.equals("0h: 0m: 1s"))
        {

        }
        timer.setText(timerText);
    }

应用程序的生命周期类似于 this:

因此尝试在调用onPause()(用户切换到另一个应用程序)时存储当前剩余时间和准确的当前时间戳。当用户再次打开应用程序时,您需要捕获 onResume() 函数。 读出存储的时间戳并与当前时间进行比较。现在可以从您还存储的剩余时间中减去时差。

可能有更好的解决方案,但这是将时间戳和剩余时间存储在 XML 文件中的最简单方法。