diff --git a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java index e0de54893873c5..7a7c8c21c52293 100644 --- a/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java +++ b/ReactAndroid/src/main/java/com/facebook/react/devsupport/DevSupportManagerBase.java @@ -345,16 +345,21 @@ private void showNewError( @Override public void run() { Activity context = mReactInstanceDevHelper.getCurrentActivity(); - if (mRedBoxDialog == null || context != currentActivity) { - if (context == null || context.isFinishing()) { - FLog.e( - ReactConstants.TAG, - "Unable to launch redbox because react activity " - + "is not available, here is the error that redbox would've displayed: " - + message); - return; - } + if (context != null && !context.isFinishing() && currentActivity != context) { currentActivity = context; + // Create a new RedBox when currentActivity get updated + mRedBoxDialog = + new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler); + } + if (currentActivity == null || currentActivity.isFinishing()) { + FLog.e( + ReactConstants.TAG, + "Unable to launch redbox because react activity " + + "is not available, here is the error that redbox would've displayed: " + + message); + return; + } + if (mRedBoxDialog == null) { mRedBoxDialog = new RedBoxDialog(currentActivity, DevSupportManagerBase.this, mRedBoxHandler); }