package com.mogujie.tt.timer; import java.util.Timer; import java.util.TimerTask; public class TimerHelper { private ITimerProcessor mProcessor; private long mDelayMs; private Timer mTimer; private TimerTask mTimerTask; private boolean isStarted = false; /** * 构造函数 * * @param delayMs 延时 * @param processor 定时处理器,由调用者定制实现 */ public TimerHelper(int delayMs, ITimerProcessor processor) { mProcessor = processor; mDelayMs = delayMs; } /** * 启动定时器 */ public void startTimer(boolean bFlag) { stopTimer(); mTimer = new Timer(true); mTimerTask = new TimerTask() { @Override public void run() { if (null != mProcessor && isRunning()) { mProcessor.process(); } } }; if (bFlag) { mTimer.schedule(mTimerTask, 0, mDelayMs); } else { mTimer.schedule(mTimerTask, mDelayMs); } isStarted = true; } /** * 停止定时器 */ public void stopTimer() { if (null != mTimer) { mTimer.cancel(); mTimer = null; } if (null != mTimerTask) { mTimerTask.cancel(); mTimerTask = null; } isStarted = false; } public boolean isRunning() { return isStarted; } }