diff --git a/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java b/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java index b32d74a670d07b..63b771767651d2 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java +++ b/ReactAndroid/src/main/java/com/facebook/react/jstasks/HeadlessJsTaskContext.java @@ -61,9 +61,15 @@ private HeadlessJsTaskContext(ReactContext reactContext) { mReactContext = new WeakReference(reactContext); } - /** Register a task lifecycle event listener. */ - public void addTaskEventListener(HeadlessJsTaskEventListener listener) { + /** + * Register a task lifecycle event listener. Synchronized in order to prevent race conditions + * with finishTask, as the listener will be invoked for already running tasks. + */ + public synchronized void addTaskEventListener(HeadlessJsTaskEventListener listener) { mHeadlessJsTaskEventListeners.add(listener); + for (Integer activeTaskId: mActiveTasks) { + listener.onHeadlessJsTaskStart(activeTaskId); + } } /** Unregister a task lifecycle event listener. */