如何在应用程序启动时设置倒数计时器的值
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 文件中的最简单方法。
嘿,我有一个倒数计时器,我用来向用户显示我的应用程序还剩多少时间。但是现在我想如果计时器 运行 持续 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 文件中的最简单方法。