From 8cabb24937522d9527e30503618e84889241b33a Mon Sep 17 00:00:00 2001 From: Fankesyooni Date: Wed, 11 May 2022 13:46:23 +0800 Subject: [PATCH] Changed context is Activity not use Intent.FLAG_ACTIVITY_NEW_TASK and added isOutSide function --- .../apperrorstracking/hook/entity/FrameworkHooker.kt | 2 +- .../ui/activity/AppErrorsDetailActivity.kt | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/com/fankes/apperrorstracking/hook/entity/FrameworkHooker.kt b/app/src/main/java/com/fankes/apperrorstracking/hook/entity/FrameworkHooker.kt index acd9f22..fec1416 100644 --- a/app/src/main/java/com/fankes/apperrorstracking/hook/entity/FrameworkHooker.kt +++ b/app/src/main/java/com/fankes/apperrorstracking/hook/entity/FrameworkHooker.kt @@ -277,7 +277,7 @@ object FrameworkHooker : YukiBaseHooker() { val errorDetailButton = createButtonItem(context, R.drawable.ic_baseline_bug_report, string(R.string.error_detail)) { cancel() - lastAppErrorsInfo(packageName)?.let { AppErrorsDetailActivity.start(context, it) } + lastAppErrorsInfo(packageName)?.let { AppErrorsDetailActivity.start(context, it, isOutSide = true) } ?: context.toast(msg = "Invalid AppErrorsInfo") } diff --git a/app/src/main/java/com/fankes/apperrorstracking/ui/activity/AppErrorsDetailActivity.kt b/app/src/main/java/com/fankes/apperrorstracking/ui/activity/AppErrorsDetailActivity.kt index 87ffe14..9b39ae6 100644 --- a/app/src/main/java/com/fankes/apperrorstracking/ui/activity/AppErrorsDetailActivity.kt +++ b/app/src/main/java/com/fankes/apperrorstracking/ui/activity/AppErrorsDetailActivity.kt @@ -50,12 +50,13 @@ class AppErrorsDetailActivity : BaseActivity() { * 启动 [AppErrorsDetailActivity] * @param context 实例 * @param appErrorsInfo 应用异常信息 + * @param isOutSide 是否从外部启动 */ - fun start(context: Context, appErrorsInfo: AppErrorsInfoBean) { + fun start(context: Context, appErrorsInfo: AppErrorsInfoBean, isOutSide: Boolean = false) { runCatching { - context.startActivity(Intent().apply { - flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK - component = ComponentName(BuildConfig.APPLICATION_ID, AppErrorsDetailActivity::class.java.name) + context.startActivity((if (isOutSide) Intent() else Intent(context, AppErrorsDetailActivity::class.java)).apply { + if (context !is Activity) flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK + if (isOutSide) component = ComponentName(BuildConfig.APPLICATION_ID, AppErrorsDetailActivity::class.java.name) putExtra(FrameworkHooker.APP_ERRORS_INFO, appErrorsInfo) }) }.onFailure { context.toast(msg = "Start AppErrorsDetailActivity failed") }