Я написал следующий класс для необученного исключения
открытый класс UncaughtExceptionHandler реализует Thread.UncaughtExceptionHandler {
private Context context;
private Class<? extends AppCompatActivity> erroractivity;
public UncaughtExceptionHandler(Context context, Class<? extends AppCompatActivity> erroractivity) {
this.context = context;
this.erroractivity = erroractivity;
}
public static void setUpErrorHandlingActivity(Context context, Class<? extends AppCompatActivity> erroractivity) {
Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler(context, erroractivity));
}
@Override
public void uncaughtException(Thread thread, Throwable throwable) {
new SystemLog().writeAppRecLog("UNCAUGHT_EXCEPTION", "UnCaught Exception.", (Exception) throwable);
Intent errorActivityIntent = new Intent(context, erroractivity);
errorActivityIntent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_CLEAR_TASK);
errorActivityIntent.setAction("FROM_ERROR_ACTIVITY");
context.startActivity(errorActivityIntent);
Process.killProcess(Process.myPid());
System.exit(10);
}
}
и в своей деятельности я зарегистрировал этот класс, чтобы я мог запустить свою собственную операцию по ошибке
UncaughtExceptionHandler.setUpErrorHandlingActivity(getActivityContext(), ErrorActivity.class);