Это более или менее тот же вопрос, что и Обратный вызов перед принудительным закрытием активности Android? , поэтому я повторю свой ответ здесь:
Я бы порекомендовал не вызывать сбой вашего приложенияна первом месте.Если есть что-то, что МОЖЕТ потерпеть крах, просто поместите try / catch вокруг него и обработайте его должным образом.
Или, как своего рода глобальный try / catch, вы можете использовать Thread.setUncaughtExceptionHandler()
.Наконец, вы могли бы даже рассмотреть Runtime.addShutdownHook, но это, скорее всего, плохая идея.
Исправьте ваши сбои.Это единственное разумное решение.