From b5ead6644126349387761d69f0253e2b5146cefb Mon Sep 17 00:00:00 2001 From: gedoor Date: Tue, 8 Sep 2020 17:47:01 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/java/io/legado/app/App.kt | 2 +- .../java/io/legado/app/help/CrashHandler.kt | 17 ++++++----------- 2 files changed, 7 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/io/legado/app/App.kt b/app/src/main/java/io/legado/app/App.kt index a96db68fb..4fac6f22e 100644 --- a/app/src/main/java/io/legado/app/App.kt +++ b/app/src/main/java/io/legado/app/App.kt @@ -45,7 +45,7 @@ class App : MultiDexApplication() { super.onCreate() INSTANCE = this androidId = Settings.System.getString(contentResolver, Settings.Secure.ANDROID_ID) - CrashHandler().init(this) + CrashHandler(this) LanguageUtils.setConfigurationOld(this) db = AppDatabase.createDatabase(INSTANCE) packageManager.getPackageInfo(packageName, 0)?.let { diff --git a/app/src/main/java/io/legado/app/help/CrashHandler.kt b/app/src/main/java/io/legado/app/help/CrashHandler.kt index 223d8f29e..e842707d3 100644 --- a/app/src/main/java/io/legado/app/help/CrashHandler.kt +++ b/app/src/main/java/io/legado/app/help/CrashHandler.kt @@ -20,18 +20,14 @@ import java.util.concurrent.TimeUnit * 异常管理类 */ @Suppress("DEPRECATION") -class CrashHandler : Thread.UncaughtExceptionHandler { +class CrashHandler(val context: Context) : Thread.UncaughtExceptionHandler { private val tag = this.javaClass.simpleName + /** * 系统默认UncaughtExceptionHandler */ private var mDefaultHandler: Thread.UncaughtExceptionHandler? = null - /** - * context - */ - private var mContext: Context? = null - /** * 存储异常和参数信息 */ @@ -43,8 +39,7 @@ class CrashHandler : Thread.UncaughtExceptionHandler { @SuppressLint("SimpleDateFormat") private val format = SimpleDateFormat("yyyy-MM-dd-HH-mm-ss") - fun init(context: Context) { - mContext = context + init { mDefaultHandler = Thread.getDefaultUncaughtExceptionHandler() //设置该CrashHandler为系统默认的 Thread.setDefaultUncaughtExceptionHandler(this) @@ -65,14 +60,14 @@ class CrashHandler : Thread.UncaughtExceptionHandler { private fun handleException(ex: Throwable?) { if (ex == null) return //收集设备参数信息 - collectDeviceInfo(mContext!!) + collectDeviceInfo(context) //添加自定义信息 addCustomInfo() kotlin.runCatching { //使用Toast来显示异常信息 Handler(Looper.getMainLooper()).post { Toast.makeText( - mContext, + context, ex.message, Toast.LENGTH_LONG ).show() @@ -141,7 +136,7 @@ class CrashHandler : Thread.UncaughtExceptionHandler { val timestamp = System.currentTimeMillis() val time = format.format(Date()) val fileName = "crash-$time-$timestamp.log" - mContext?.externalCacheDir?.let { rootFile -> + context.externalCacheDir?.let { rootFile -> FileUtils.getFile(rootFile, "crash").listFiles()?.forEach { if (it.lastModified() < System.currentTimeMillis() - TimeUnit.DAYS.toMillis(7)) { it.delete()