Android為我們封裝好了一個抽象類CountDownTimer,可以實現計時器功能:
/** * 倒數計時器 */
private CountDownTimer timer = new CountDownTimer(15 * 60 * 1000, 1000) { /** * 固定間隔被調用,就是每隔countDownInterval會回調一次方法onTick * @param millisUntilFinished */ @Override public void onTick(long millisUntilFinished) { tv_remaining_time.setText(formatTime(millisUntilFinished)); } /** * 倒計時完成時被調用 */ @Override public void onFinish() { tv_remaining_time.setText("00:00"); } }; /** * 將毫秒轉化為 分鍾:秒 的格式 * * @param millisecond 毫秒 * @return
*/
public String formatTime(long millisecond) { int minute;//分鍾
int second;//秒數
minute = (int) ((millisecond / 1000) / 60); second = (int) ((millisecond / 1000) % 60); if (minute < 10) { if (second < 10) { return "0" + minute + ":" + "0" + second; } else { return "0" + minute + ":" + second; } }else { if (second < 10) { return minute + ":" + "0" + second; } else { return minute + ":" + second; } } } /** * 取消倒計時 */
public void timerCancel() { timer.cancel(); } /** * 開始倒計時 */
public void timerStart() { timer.start(); }
構造方法里需要傳入兩個參數進去:
參數1:倒計時的總時間,單位ms
參數2:倒計時的時間間隔,單位ms
方法:
cancel():取消倒計時
onFinish():當前任務完成的時候回調
onTick(long millisUnitilFinished):當前任務每完成一次倒計時間隔時間時回調
start():開始倒計時
更多技術干貨,歡迎關注我的公眾號:ChaoYoung