Android使用Chronometer实现计时器

来源:互联网 发布:抽号软件在线 编辑:程序博客网 时间:2024/06/08 20:02
Android使用Chronometer实现计时器
             不用使用线程搭配Handler,直接使用Chronometer实现计时器,可以开始、暂停、重置计时器。
一、Chronometer是TextView的子类,用法跟一般控件一致,布局很简单直接拖放控件就可以了。


二、使用:
通过按钮点击事件来调用Chronometer的相关方法即可。Chronometer timer
1、开始计时:timer.start()
2、暂停计时:timer.stop()
3、重置计时器:timer.setBase(SystemClock.elapsedRealtime());
但是要注意的是点击暂停按钮后,只是表面上的暂停,实际上后台仍旧在继续计时,这时候点击开始按钮会发现时间的变化。

三、原因:首次运行时timer.start()之后会默认设置timer.setBase(SystemClock.elapsedRealtime());即设置当前时间起开始计时,计算首次运行的time 与 当前时间差额从而达到及时的效果,暂停或停止之后,time不会变,因此计时器实际仍在继续运行。

四、解决办法:
增加变量 boolean falg 初始值为 false,long stopTime 点击暂停时记录当前时间同时将 falg 置为 true, long base 记录计时器的Base时间(即计时起始时间),当再次点击开始按钮,计算当前时间与stopTime之间的差额为 t ,最后 timer.setBase(base+t);即可实现真正意义上的计时器,完成到这一步了,注意在 重置按钮的点击事件里,将 falg 置为 false , 否则会有bug。
详情见以下代码:



项目下载地址:http://download.csdn.net/detail/ouyangjiluo/7096461 不需要积分
0 0
原创粉丝点击