diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java index 0b6294ba956..e4350d34cd9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java @@ -7,7 +7,6 @@ package com.facebook.react.jstasks; -import android.os.Handler; import android.util.SparseArray; import com.facebook.infer.annotation.Assertions; import com.facebook.react.bridge.ReactContext; @@ -52,7 +51,6 @@ public class HeadlessJsTaskContext { private final Set mHeadlessJsTaskEventListeners = new CopyOnWriteArraySet<>(); private final AtomicInteger mLastTaskId = new AtomicInteger(0); - private final Handler mHandler = new Handler(); private final Set mActiveTasks = new CopyOnWriteArraySet<>(); private final Map mActiveTaskConfigs = new ConcurrentHashMap<>(); private final SparseArray mTaskTimeouts = new SparseArray<>(); @@ -194,9 +192,9 @@ public class HeadlessJsTaskContext { } private void removeTimeout(int taskId) { - Runnable timeout = mTaskTimeouts.get(taskId); - if (timeout != null) { - mHandler.removeCallbacks(timeout); + Runnable runnable = mTaskTimeouts.get(taskId); + if (runnable != null) { + UiThreadUtil.removeOnUiThread(runnable); mTaskTimeouts.remove(taskId); } } @@ -210,14 +208,8 @@ public class HeadlessJsTaskContext { } private void scheduleTaskTimeout(final int taskId, long timeout) { - Runnable runnable = - new Runnable() { - @Override - public void run() { - finishTask(taskId); - } - }; + Runnable runnable = () -> finishTask(taskId); mTaskTimeouts.append(taskId, runnable); - mHandler.postDelayed(runnable, timeout); + UiThreadUtil.runOnUiThread(runnable, timeout); } }