Android开发Chronometer计时器的问题

暂停记时后,比如说停在了00:10,过了一段时间后,接着记时,如何让计时器从00:11 接着往后记录呢?
Chronometer.start();按当前基准时间计时的,如果你没有设置chronometer.setBase(SystemClock.elapsedRealtime());系统会默认给你设置一个。Chronometer.stop(),只是暂停消息推送,其实后台还在跑。当你再次Chronometer.start()时,还是按着先去的基准时间来计时的,在这里你可以Chronometer.getBase()看下值。

说下思路:Chronometer.stop()之后,再调用Chronometer.start();还是按照之前的chronometer.setBase(SystemClock.elapsedRealtime());来计时的;所以出现时间跳跃就可以理解了。我们可以在再调用Chronometer.start()之前,设置下chronometer.setBase(xx)..关键这个xx怎么设定的问题。
通过实验发现,计时10秒,暂停,发现俩次取得getBase()的值相差 10*1000,说到这个你可能就明白了。那么,Chronometer.stop()之后,再调用Chronometer.start()之前设置下chronometer.setBase(SystemClock.elapsedRealtime() - 10*1000); 关于如何取得计时多少秒的问题,简单啊,当你Chronometer.stop()时候取得Chronometer.gettext();(比如:00:19这样的值).设置一个long temp = Double.parseDouble(chronometer.getText().toString().split(":")[1]) * 1000; 
有的点混乱 但是应该还算比较清楚了吧。

你可能感兴趣的:(android)