前言
业务上有个需求,在心跳被触发时需要记录一个时间
当心跳断开后120s需要断开连接
如果收到心跳包就重置这个定时器的时间
代码实现
private CountDownTimer mTimer;
private boolean mIsTimerRunning = false;
if (!mIsTimerRunning) {
// 启动定时器
startTimer();
} else {
// 重置定时器的秒数
mTimer.cancel();
mTimer.start();
}
public void startTimer() {
mTimer = new CountDownTimer(10000, 1000) {
@Override
public void onTick(long millisUntilFinished) {
long seconds = millisUntilFinished / 1000;
// 定时器计时,每秒执行一次
ALog.e("剩余->" + seconds);
}
@Override
public void onFinish() {
// 定时器计时结束,触发提示
ALog.e("倒计时结束");
}
};
mTimer.start();
mIsTimerRunning = true;
}