diff --git a/sentry-android-replay/src/main/java/io/sentry/android/replay/WindowRecorder.kt b/sentry-android-replay/src/main/java/io/sentry/android/replay/WindowRecorder.kt index 197ec099661..9380db5036e 100644 --- a/sentry-android-replay/src/main/java/io/sentry/android/replay/WindowRecorder.kt +++ b/sentry-android-replay/src/main/java/io/sentry/android/replay/WindowRecorder.kt @@ -50,6 +50,8 @@ internal class WindowRecorder( } recorder?.resume() isRecording.getAndSet(true) + // Remove any existing callbacks to prevent concurrent capture loops + mainLooperHandler.removeCallbacks(this) val posted = mainLooperHandler.post(this) if (!posted) { options.logger.log( @@ -184,6 +186,9 @@ internal class WindowRecorder( capturer?.recorder?.bind(newRoot) } + // Remove any existing callbacks to prevent concurrent capture loops + mainLooperHandler.removeCallbacks(capturer) + val posted = mainLooperHandler.postDelayed( capturer,