我已經設置了一個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
調用是靜態的,這是否意味着我只能在應用程序中設置該處理程序一次?或者我可以每個線程設置它?