From e31297794da56a9837139d9ba4060a3a815ffc8e Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sun, 1 Apr 2018 14:18:23 +0800 Subject: [PATCH] fix(ui): ui callbacks still alive after script exit --- .../src/main/java/com/stardust/autojs/core/looper/Timer.java | 4 ++++ .../main/java/com/stardust/autojs/runtime/ScriptRuntime.java | 1 + .../src/main/java/com/stardust/autojs/runtime/api/Timers.java | 4 ++++ 3 files changed, 9 insertions(+) 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(); + } + }