public MyBroadcastReceiver() { final UncaughtExceptionHandler defaultUEH = Thread .getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread thread, Throwable ex) { // TODO Handle Exception defaultUEH.uncaughtException(thread, ex); } }); }
defaultHandler.uncaughtException( thread, exception );
@Override public void onCreate() { super.onCreate(); Crashlytics.start(this); initUncaughtExceptionHandler(); } private void initUncaughtExceptionHandler() { final ScheduledThreadPoolExecutor c = new ScheduledThreadPoolExecutor(1); c.schedule(new Runnable() { @Override public void run() { final UncaughtExceptionHandler defaultHandler = Thread.getDefaultUncaughtExceptionHandler(); Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler() { @Override public void uncaughtException(Thread paramThread, Throwable paramThrowable) { // do my amazing stuff here System.err.println("Error!"); //then pass the job to the previous handler defaultHandler.uncaughtException(paramThread, paramThrowable); } }); } }, 5, TimeUnit.SECONDS); }