static private final int FOREVER = -2;\r
\r
/** Timer instance for general application wide usage. Static methods on {@link Timer} make convenient use of this instance. */\r
- static public final Timer instance = new Timer();\r
-\r
+ static Timer instance = new Timer();\r
+ static public Timer instance() {\r
+ if (instance == null) {\r
+ instance = new Timer();\r
+ }\r
+ return instance;\r
+ }\r
private final Array<Task> tasks = new Array(false, 8);\r
\r
public Timer () {\r
/** Schedules a task on {@link #instance}.\r
* @see #postTask(Task) */\r
static public void post (Task task) {\r
- instance.postTask(task);\r
+ instance().postTask(task);\r
}\r
\r
/** Schedules a task on {@link #instance}.\r
* @see #scheduleTask(Task, float) */\r
static public void schedule (Task task, float delaySeconds) {\r
- instance.scheduleTask(task, delaySeconds);\r
+ instance().scheduleTask(task, delaySeconds);\r
}\r
\r
/** Schedules a task on {@link #instance}.\r
* @see #scheduleTask(Task, float, float) */\r
static public void schedule (Task task, float delaySeconds, float intervalSeconds) {\r
- instance.scheduleTask(task, delaySeconds, intervalSeconds);\r
+ instance().scheduleTask(task, delaySeconds, intervalSeconds);\r
}\r
\r
/** Schedules a task on {@link #instance}.\r
* @see #scheduleTask(Task, float, float, int) */\r
static public void schedule (Task task, float delaySeconds, float intervalSeconds, int repeatCount) {\r
- instance.scheduleTask(task, delaySeconds, intervalSeconds, repeatCount);\r
+ instance().scheduleTask(task, delaySeconds, intervalSeconds, repeatCount);\r
}\r
\r
/** Runnable with a cancel method.\r
Gdx.app.removeLifecycleListener(this);\r
thread = null;\r
instances.clear();\r
+ instance = null;\r
}\r
}\r
}\r