Thread.setDefaultUncaughtExceptionHandler(new UncaughtExceptionHandler()
{
Thread.UncaughtExceptionHandler oldHandler=Thread.getDefaultUncaughtExceptionHandler();
@Override
public void uncaughtException(Thread thread, Throwable ex)
{
Log.e(LOG, "Ошибка поймана");
//здесь делаем то, что хотели сделать в onPause, но не успели, т.к. упали.
//Если используем какую-либо либу, обрабатывающую ошибки
//ACRA, например, то надо вызвать дальнейшую обработку ошибки
//дефолтным обработчиком
//Также это надо вызвать чтобы падение по ошибке со стандартным диалогом не завершилось ANR вместо него.
if(oldHandler!=null)
{
oldHandler.uncaughtException(thread, ex);
}
}
});
如果可以强制发送错误消息,那么你可以尝试像这样响应所有错误并手动发送消息。
这应该写在 onCreate 活动中: