diff --git a/android/src/main/java/org/devio/rn/splashscreen/SplashScreen.java b/android/src/main/java/org/devio/rn/splashscreen/SplashScreen.java index 575d3f8e..c995c2c3 100644 --- a/android/src/main/java/org/devio/rn/splashscreen/SplashScreen.java +++ b/android/src/main/java/org/devio/rn/splashscreen/SplashScreen.java @@ -2,6 +2,7 @@ import android.app.Activity; import android.app.Dialog; +import android.os.Build; import java.lang.ref.WeakReference; @@ -70,13 +71,24 @@ public static void hide(Activity activity) { } activity = mActivity.get(); } + if (activity == null) return; - activity.runOnUiThread(new Runnable() { + final Activity _activity = activity; + + _activity.runOnUiThread(new Runnable() { @Override public void run() { if (mSplashDialog != null && mSplashDialog.isShowing()) { - mSplashDialog.dismiss(); + boolean isDestroyed = false; + + if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR1) { + isDestroyed = _activity.isDestroyed(); + } + + if (!_activity.isFinishing() && !isDestroyed) { + mSplashDialog.dismiss(); + } mSplashDialog = null; } }