diff --git a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java index a1801d5627c..4bf3fbbfca9 100644 --- a/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java +++ b/packages/react-native/ReactAndroid/src/main/java/com/facebook/react/ReactInstanceManager.java @@ -387,7 +387,7 @@ public class ReactInstanceManager { mDevSupportManager.handleException(e); } - public void registerCxxErrorHandlerFunc() { + private void registerCxxErrorHandlerFunc() { Class[] parameterTypes = new Class[1]; parameterTypes[0] = Exception.class; Method handleCxxErrorFunc = null; @@ -399,6 +399,10 @@ public class ReactInstanceManager { ReactCxxErrorHandler.setHandleErrorFunc(this, handleCxxErrorFunc); } + private void unregisterCxxErrorHandlerFunc() { + ReactCxxErrorHandler.setHandleErrorFunc(null, null); + } + static void initializeSoLoaderIfNecessary(Context applicationContext) { // Call SoLoader.initialize here, this is required for apps that does not use exopackage and // does not use SoLoader for loading other native code except from the one used by React Native @@ -747,23 +751,22 @@ public class ReactInstanceManager { } moveToBeforeCreateLifecycleState(); - - if (mCreateReactContextThread != null) { - mCreateReactContextThread = null; - } - mMemoryPressureRouter.destroy(mApplicationContext); + unregisterCxxErrorHandlerFunc(); + mCreateReactContextThread = null; synchronized (mReactContextLock) { if (mCurrentReactContext != null) { mCurrentReactContext.destroy(); mCurrentReactContext = null; } } + mHasStartedCreatingInitialContext = false; mCurrentActivity = null; ResourceDrawableIdHelper.getInstance().clear(); + mHasStartedDestroying = false; synchronized (mHasStartedDestroying) { mHasStartedDestroying.notifyAll();