package rajawali.animation; import java.util.Stack; import java.util.Timer; public class TimerManager { private static final ThreadLocal<TimerManager> mThreadLocalManager = new ThreadLocal<TimerManager>(); private Stack<Timer> mTimers; private TimerManager() { mTimers = new Stack<Timer>(); } public Timer createNewTimer() { Timer timer = new Timer(); mTimers.add(timer); return timer; } public void killTimer(Timer timer) { timer.cancel(); timer.purge(); mTimers.remove(timer); } public void clear() { for(int i=0; i<mTimers.size(); ++i) { mTimers.get(i).cancel(); mTimers.get(i).purge(); } mTimers.clear(); mThreadLocalManager.remove(); } public static TimerManager getInstance() { TimerManager instance = mThreadLocalManager.get(); if(instance == null) { instance = new TimerManager(); mThreadLocalManager.set(instance); } return instance; } }