我有一个应用程序,在其中向用户显示他正在做的事情的计时器。
每当活动进入后台(无论是通过主页按钮还是返回)时,我都会保存该时间(以秒为单位),当活动返回时,我想继续从同一时间运行计时器。用户可能会从列表中选择不同的项目,时间也会不同,而且他可能会关闭手机......
我可以保存计时器的时间,但无法设置开始时间。
来自测时仪 API http://developer.android.com/reference/android/widget/Chronometer.htm, 方法setBase()
states:
设置递增计时器所参考的时间。
根据我的理解,这意味着如果我将此值设置为 currentTime,它将从 0 开始计数。
现在,如果我希望它以 17s 值开始,我考虑将基数设置为 currentTime 减去 17 秒前的时间。所以像这样:
setBase(system.currentTimeMillis() - (17 * 1000)).
但这是行不通的,而且它总是以 0 开头!
我在这里阅读了其他一些帖子,但没有一个答案有帮助。它总是从0开始!
提前致谢。
我认为你必须自己记录一些时间标记。
Chronometer myChrono;
long baseTime;
long stopTime;
long elapsedTime;
当您设置基准时间时,您要使用:
baseTime = SystemClock.elapsedRealtime() - stopTime;
myChrono.setBase(baseTime);
当您想查看已经过去了多少时间时,请使用:
elapsedTime = SystemClock.elapsedRealtime() - myChrono.getBase();
查看系统时钟doc http://developer.android.com/reference/android/os/SystemClock.html#elapsedRealtime%28%29.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)