ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Android Chronometer恢复功能

2019-07-25 12:27:00  阅读:258  来源: 互联网

标签:chronometer android


我正在尝试使用Chronometer在我的Android应用程序中创建一个简历按钮.到目前为止,我有这个简历方法的代码片段:

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

你需要记住最后的计时器停止时间.

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

希望这可以帮助

标签:chronometer,android
来源: https://codeday.me/bug/20190725/1532870.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有