package com.devsmart.android; import android.os.Handler; public class LightweightTimer { private Handler mHandler = new Handler(); private Runnable mOnTickCallback = null; private long mInterval; private boolean mRunning = false; public LightweightTimer(Runnable r, long millisec) { setOnTick(r); setInterval(millisec); } public void setOnTick(Runnable r) { mOnTickCallback = r; } public void setInterval(long millisec) { if(millisec > 0) { mInterval = millisec; } else { throw new RuntimeException("timer delay must be > 0"); } } public void start() { if(mOnTickCallback != null){ mHandler.postDelayed(mOnTick, mInterval); } mRunning = true; } public void stop() { mRunning = false; mHandler.removeCallbacks(mOnTick); } private Runnable mOnTick = new Runnable() { @Override public void run() { if(mOnTickCallback != null){ mOnTickCallback.run(); if(mRunning){ start(); } } } }; }