From 9f603077fa724db6033e09ea7b4d47a3291c4312 Mon Sep 17 00:00:00 2001 From: mark-friedman Date: Tue, 19 Jun 2018 13:55:36 -0700 Subject: [PATCH] Save and call pre-existing native handler --- .../ReactNativeExceptionHandlerModule.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/masteratul/exceptionhandler/ReactNativeExceptionHandlerModule.java b/android/src/main/java/com/masteratul/exceptionhandler/ReactNativeExceptionHandlerModule.java index c2780bd..eba89dc 100644 --- a/android/src/main/java/com/masteratul/exceptionhandler/ReactNativeExceptionHandlerModule.java +++ b/android/src/main/java/com/masteratul/exceptionhandler/ReactNativeExceptionHandlerModule.java @@ -15,6 +15,7 @@ public class ReactNativeExceptionHandlerModule extends ReactContextBaseJavaModul private Activity activity; private static Class errorIntentTargetClass = DefaultErrorScreen.class; private Callback callbackHolder; + private Thread.UncaughtExceptionHandler originalHandler; public ReactNativeExceptionHandlerModule(ReactApplicationContext reactContext) { super(reactContext); @@ -30,6 +31,7 @@ public String getName() { @ReactMethod public void setHandlerforNativeException(final boolean forceToQuit, Callback customHandler){ callbackHolder = customHandler; + originalHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new Thread.UncaughtExceptionHandler() { @Override @@ -47,7 +49,11 @@ public void uncaughtException(Thread thread, Throwable throwable) { activity.startActivity(i); activity.finish(); - + + if (originalHandler != null) { + originalHandler.uncaughtException(thread, throwable); + } + if (forceToQuit) { System.exit(0); }