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 e4350d34cd9645..123c522579279c 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 @@ -169,18 +169,16 @@ public void run() { /** * Finish a JS task. Doesn't actually stop the task on the JS side, only removes it from the list - * of active tasks and notifies listeners. A task can only be finished once. + * of active tasks and notifies listeners. * * @param taskId the unique id returned by {@link #startTask}. */ public synchronized void finishTask(final int taskId) { - Assertions.assertCondition( - mActiveTasks.remove(taskId), "Tried to finish non-existent task with id " + taskId + "."); - Assertions.assertCondition( - mActiveTaskConfigs.remove(taskId) != null, - "Tried to remove non-existent task config with id " + taskId + "."); + boolean removed = mActiveTasks.remove(taskId); + mActiveTaskConfigs.remove(taskId); removeTimeout(taskId); - UiThreadUtil.runOnUiThread( + if (removed) { + UiThreadUtil.runOnUiThread( new Runnable() { @Override public void run() { @@ -189,6 +187,7 @@ public void run() { } } }); + } } private void removeTimeout(int taskId) {