diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java index f3efa6cd0fc3..1e285b2c6f17 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/modules/intent/IntentModule.java @@ -39,9 +39,11 @@ public IntentModule(ReactApplicationContext reactContext) { @Override public void invalidate() { - if (mInitialURLListener != null) { - getReactApplicationContext().removeLifecycleEventListener(mInitialURLListener); - mInitialURLListener = null; + synchronized (this) { + if (mInitialURLListener != null) { + getReactApplicationContext().removeLifecycleEventListener(mInitialURLListener); + mInitialURLListener = null; + } } super.invalidate(); } @@ -79,7 +81,7 @@ public void getInitialURL(Promise promise) { } } - private void waitForActivityAndGetInitialURL(final Promise promise) { + private synchronized void waitForActivityAndGetInitialURL(final Promise promise) { if (mInitialURLListener != null) { promise.reject( new IllegalStateException( @@ -94,7 +96,9 @@ public void onHostResume() { getInitialURL(promise); getReactApplicationContext().removeLifecycleEventListener(this); - mInitialURLListener = null; + synchronized (IntentModule.this) { + mInitialURLListener = null; + } } @Override