OSDN Git Service

Fix Issue 1602
authorJustin Shapcott <support@mobidevelop.com>
Wed, 31 Jul 2013 15:11:50 +0000 (08:11 -0700)
committerJustin Shapcott <support@mobidevelop.com>
Wed, 31 Jul 2013 15:11:50 +0000 (08:11 -0700)
gdx/src/com/badlogic/gdx/utils/Timer.java

index 5df36d5..29f4fa9 100644 (file)
@@ -29,8 +29,13 @@ public class Timer {
        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
@@ -138,25 +143,25 @@ public class Timer {
        /** 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
@@ -241,6 +246,7 @@ public class Timer {
                        Gdx.app.removeLifecycleListener(this);\r
                        thread = null;\r
                        instances.clear();\r
+                       instance = null;\r
                }\r
        }\r
 }\r