From a3fd8f2423916331a099a408eb82f4975a0102cf Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Mon, 26 Feb 2018 14:04:25 +0800 Subject: [PATCH] feat: uncaught exception on non-ui threads does not cause crash report any more --- .../java/com/stardust/scriptdroid/tool/CrashHandler.java | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/stardust/scriptdroid/tool/CrashHandler.java b/app/src/main/java/com/stardust/scriptdroid/tool/CrashHandler.java index 3046363e..c57736fb 100644 --- a/app/src/main/java/com/stardust/scriptdroid/tool/CrashHandler.java +++ b/app/src/main/java/com/stardust/scriptdroid/tool/CrashHandler.java @@ -7,6 +7,7 @@ package com.stardust.scriptdroid.tool; import android.content.Intent; import android.os.Build; +import android.os.Looper; import android.util.Log; import android.view.WindowManager; import android.widget.Toast; @@ -34,18 +35,22 @@ public class CrashHandler implements UncaughtExceptionHandler { } public void uncaughtException(Thread thread, Throwable ex) { + if (thread != Looper.getMainLooper().getThread()) { + Log.e(TAG, "Uncaught Exception", ex); + return; + } AccessibilityService service = AccessibilityService.getInstance(); if (service != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { service.disableSelf(); } - if(BuildConfig.DEBUG){ + if (BuildConfig.DEBUG) { mDefaultHandler.uncaughtException(thread, ex); return; } if (causedByBadWindowToken(ex)) { Toast.makeText(App.getApp(), R.string.text_no_floating_window_permission, Toast.LENGTH_SHORT).show(); IntentUtil.goToAppDetailSettings(App.getApp()); - }else { + } else { try { Log.e(TAG, "Uncaught Exception", ex); if (crashTooManyTimes())