Отправка отчета о сбое по электронной почте с помощью DefaultExceptionHandler

фон

Я пытаюсь перехватить все сбои и позволить пользователю отправить свой собственный отчет об ошибке по электронной почте.

Это очень временное решение, так как мне нужно отправить журналы приложения и другую информацию. он не предназначен для отправки конечным пользователям. только очень маленькая группа тестеров.

как это устроено

Во всяком случае, я создал класс, который расширяется от java.lang.Thread.UncaughtExceptionHandler и имеет функцию uncaughtException() . я зарегистрировался в нем с помощью Thread.setDefaultUncaughtExceptionHandler(), и он действительно ловит сбои.

функция сохраняет некоторые данные во внешнем хранилище и немедленно открывает приложение электронной почты (gmail) для отправки отчета о сбое.

эта проблема

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

я пробовал несколько комбинаций:

  • System.exit (0)
  • android.os.Process.killProcess (android.os.Process.myPid ());
  • вызывая UncaughtExceptionHandler по умолчанию.

никто не работал. оно закрывает приложение, но как только оно закрывается, приложение перезапускается само

я также не могу узнать, как делать вещи, которые работают в потоке пользовательского интерфейса при захвате сбоев (например, тосты, диалоги,...) .

Другое решение, которое я попробовал, - это открытие нового действия, которое отправит отчет о сбое. к сожалению, приложение даже не запустило активность.

Еще я попробовал прочитать из библиотеки ACRA, пытаясь выяснить, как они справляются со сбоями. к сожалению, я не понял, что там происходит, даже с высокого уровня.

Я искал здесь (на SO) для решения и нашел несколько сообщений, но ни один не работал для меня.

вопрос

как я могу избежать перезапуска приложения при закрытии приложения электронной почты?

1 ответ

Прочитав ваш вопрос, я подумал, что хочу дать отчет о сбое.

Вот мой результат: https://github.com/slightfoot/android-crash-reporting

В нем есть все, что вы хотели и, возможно, больше.

Другие вопросы по тегам