我已经设置了一个UncaughtExceptionHandler
,以便我的应用程序崩溃时可以将堆栈跟踪写入磁盘。我设置的处理程序是这样的:UncaughtExceptionHandler是否设置了应用程序范围?
if (!(Thread.getDefaultUncaughtExceptionHandler() instanceof CustomExceptionHandler)) {
exceptionHandler = new CustomExceptionHandler(
Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOWNLOADS).toString(),
null, this);
Thread.setDefaultUncaughtExceptionHandler(exceptionHandler);
}
其中CustomExceptionHandler
实现UncaughtExceptionHandler
。我将实例保存在我的Activity
中,因此我可以将它用于其他一些功能(删除堆栈跟踪,检索它们等)。
我在我的Activity
的onCreate
中调用了上面的那段代码,但它似乎只在第一次运行任何Activity
时触发。
我看到Thread.setDefaultUncaughtExceptionHandler
调用是静态的,这是否意味着我只能在应用程序中设置该处理程序一次?或者我可以每个线程设置它?