Android开发中Chronometer的用法
Chronometer集成自TextView,里面有个Handler负责定时更新ui。
其计时原理很简单:通过setBase(long t)方法设置好baseTime之后,当start()时,每隔一秒,用当前SystemClock.elapsedRealtime()减baseTime,得到的逝去时间显示在TextView中。
下面来个例子,这里除了start、stop功能,还利用setBase()添加个pause功能。
1 private Chronometer recordChronometer; 2 private long recordingTime = 0;// 记录下来的总时间 3 4 public void onRecordStart() { 5 recordChronometer.setBase(SystemClock.elapsedRealtime() - recordingTime);// 跳过已经记录了的时间,起到继续计时的作用 6 recordChronometer.start(); 7 } 8 9 public void onRecordPause() { 10 recordChronometer.stop(); 11 recordingTime = SystemClock.elapsedRealtime() 12 - recordChronometer.getBase();// 保存这次记录了的时间 13 } 14 15 public void onRecordStop() { 16 recordingTime = 0; 17 recordChronometer.setBase(SystemClock.elapsedRealtime()); 18 }