gpt4 book ai didi

Android Chronometer 恢复函数

转载 作者:塔克拉玛干 更新时间:2023-11-02 22:15:29 26 4
gpt4 key购买 nike

我正在尝试使用 Chronometer 在我的 Android 应用程序中创建一个恢复按钮。到目前为止,我有 resume 方法的代码 fragment :

private long pauseResume() {

long timeWhenStopped = chronometer.getBase() - SystemClock.elapsedRealtime();

return timeWhenStopped;

}

这是恢复按钮的代码:

 public void onClick(View v) {
switch(v.getId()) {

...

case R.id.resume_button:
chronometer.setBase(SystemClock.elapsedRealtime() + pauseResume());
chronometer.start();
break;

}
}

问题:例如,当我在 00:05 暂停计时器并在 10 秒后按下恢复按钮时,计时器将在 00:15 恢复计时。

我希望它再次从 00:05 开始,而不是 00:15,因为它是一个“恢复”功能。

很高兴你能帮上忙。谢谢。

最佳答案

有点晚了,但可能对其他人有帮助。我认为这是您问题的解决方案。

开始/恢复计时器:

private void chronoStart()
{
// on first start
if ( mLastStopTime == 0 )
mChronometer.setBase( SystemClock.elapsedRealtime() );
// on resume after pause
else
{
long intervalOnPause = (SystemClock.elapsedRealtime() - mLastStopTime);
mChronometer.setBase( mChronometer.getBase() + intervalOnPause );
}

mChronometer.start();
}

暂停计时器:

private void chronoPause()
{
mChronometer.stop();

mLastStopTime = SystemClock.elapsedRealtime();
}

您需要记住上次计时器停止时间

在恢复时,您计算上次停止时间和新开始时间之间花费的时间。当你有这个间隔时,你只需将间隔添加到你的计时器基准时间(你“移动”了原始开始时间)。

希望这有帮助;)

关于Android Chronometer 恢复函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19194302/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com