由于项目的运动模块在开始运动的时候会有一个计时器,来统计本次运动的时长,在此分享一个简单计时器的实现方式,主要通过Handle的postDelay方法来实现一个定时任务。
/*****************计时器*******************/ private Runnable timeRunable = new Runnable() { @Override public void run() { currentSecond = currentSecond + 1000; timerText.setText(TimeUtil.getFormatHMS(currentSecond)); if (!isPause) { //递归调用本runable对象,实现每隔一秒一次执行任务 mhandle.postDelayed(this, 1000); } } }; //计时器 private Handler mhandle = new Handler(); private boolean isPause = false;//是否暂停 private long currentSecond = 0;//当前毫秒数 /*****************计时器*******************/
TimeUtil工具类的方法:
/** * 根据毫秒返回时分秒 * @param time * @return */ public static String getFormatHMS(long time){ time=time/1000;//总秒数 int s= (int) (time%60);//秒 int m= (int) (time/60);//分 int h=(int) (time/3600);//秒 return String.format("%02d:%02d:%02d",h,m,s); }