Android-приложение постоянно перезагружается и вылетает при killProcess () - PullRequest
0 голосов
/ 09 июля 2019

У меня есть приложение для Android с некоторым поведением, которое я не могу понять.Когда мое приложение аварийно завершает работу, оно само перезапускается, но все функции пользовательского интерфейса, свойства которых установлены в действиях onCreate(), сбрасываются до значений по умолчанию.Очень похоже на этот вопрос: Приложение Android перезапускается при сбое / принудительном закрытии

В ответ на этот вопрос я решил добавить пользовательский uncaughtExceptionHandler, который любезно ловит мои исключения для меня.Когда исключение поймано, я просто хочу завершить процесс и заставить пользователя начать сначала.

@Override
public void uncaughtException(Thread thread, Throwable exception) {
    StringWriter stackTrace = new StringWriter();
    exception.printStackTrace(new PrintWriter(stackTrace));
    System.err.println(stackTrace);// You can use LogCat too
    String s = stackTrace.toString();
    //you can use this String to know what caused the exception and in which Activity
    android.os.Process.killProcess(android.os.Process.myPid());
    System.exit(0);
}

Выше приведен код моего исключенияHandler.

Как и ожидалось, исключение перехватывается и процесс завершается, но затем приложение перезагружается и несколько раз умирает.Там напечатана только одна трассировка стека.Трудно описать происходящее, так что вот видео с выходом logcat.Все это время приложение просто показывает пустой белый экран.Нажатие на кнопку назад ничего не делает.Наконец, я получаю сообщение ANR, и приложение снова перезагружается (как я и не хотел, чтобы это было)

Видео моего logcat: https://youtu.be/Hwcrifhj5Zo

...