diff --git a/autojs/src/main/java/com/stardust/autojs/core/looper/Timer.java b/autojs/src/main/java/com/stardust/autojs/core/looper/Timer.java index 2cef26ae..f0add038 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/looper/Timer.java +++ b/autojs/src/main/java/com/stardust/autojs/core/looper/Timer.java @@ -112,4 +112,8 @@ public class Timer { return mMaxCallbackUptimeMillis > SystemClock.uptimeMillis(); } + public void removeAllCallbacks() { + mHandler.removeCallbacksAndMessages(null); + } + } diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java index 73c064f2..1c249de9 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/ScriptRuntime.java @@ -373,6 +373,7 @@ public class ScriptRuntime { ignoresException(images::releaseScreenCapturer); } ignoresException(sensors::unregisterAll); + ignoresException(timers::recycle); } private void ignoresException(Runnable r) { diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java index 31fd355e..96d5b2dc 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Timers.java @@ -87,4 +87,8 @@ public class Timers { return getTimerForCurrentThread().hasPendingCallbacks(); } + public void recycle(){ + mMainTimer.removeAllCallbacks(); + } + }