Android:在线程中使用未捕获的异常强制崩溃

srl*_*rlm 8 java android exception

我正在开发一个应用程序,每隔一段时间我的后台工作线程就会有一种未被捕获的异常.这些异常会使该线程崩溃,但由于它不在UI线程上,因此App会继续运行.如何在后台线程中强制这些未捕获的异常来崩溃整个应用程序?如果相同的上下文崩溃信息(例如堆栈跟踪)可用,那将是很好的.

我想这样做,以便当我将应用程序发布给我的测试人员时,它不会变得无法响应.相反,当后台线程有未被捕获的异常时,应用程序将转到它的崩溃处理程序并向我发送报告(我正在使用ACRA,但这不重要).这比默默失败的应用程序要好.

dvr*_*vrm 1

您可以在实现的类中捕获未捕获的异常java.lang.Thread.UncaughtExceptionHandler

  • 创建一个实现 UncaughtExceptionHandler 的类,并将所需的行为放入uncaughtException重写函数中。
    您可以在此功能中执行任何您想要的行为,例如将日志发送到服务器、向用户显示自定义崩溃对话框等。
  • 在您的活动/线程中添加Thread.setDefaultUncaughtExceptionHandler(); 并给出异常处理程序类的实例。