Changed context is Activity not use Intent.FLAG_ACTIVITY_NEW_TASK and added isOutSide function

This commit is contained in:
2022-05-11 13:46:23 +08:00
parent 8410576deb
commit 8cabb24937
2 changed files with 6 additions and 5 deletions

View File

@@ -277,7 +277,7 @@ object FrameworkHooker : YukiBaseHooker() {
val errorDetailButton = val errorDetailButton =
createButtonItem(context, R.drawable.ic_baseline_bug_report, string(R.string.error_detail)) { createButtonItem(context, R.drawable.ic_baseline_bug_report, string(R.string.error_detail)) {
cancel() cancel()
lastAppErrorsInfo(packageName)?.let { AppErrorsDetailActivity.start(context, it) } lastAppErrorsInfo(packageName)?.let { AppErrorsDetailActivity.start(context, it, isOutSide = true) }
?: context.toast(msg = "Invalid AppErrorsInfo") ?: context.toast(msg = "Invalid AppErrorsInfo")
} }

View File

@@ -50,12 +50,13 @@ class AppErrorsDetailActivity : BaseActivity<ActivityAppErrorsDetailBinding>() {
* 启动 [AppErrorsDetailActivity] * 启动 [AppErrorsDetailActivity]
* @param context 实例 * @param context 实例
* @param appErrorsInfo 应用异常信息 * @param appErrorsInfo 应用异常信息
* @param isOutSide 是否从外部启动
*/ */
fun start(context: Context, appErrorsInfo: AppErrorsInfoBean) { fun start(context: Context, appErrorsInfo: AppErrorsInfoBean, isOutSide: Boolean = false) {
runCatching { runCatching {
context.startActivity(Intent().apply { context.startActivity((if (isOutSide) Intent() else Intent(context, AppErrorsDetailActivity::class.java)).apply {
flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK if (context !is Activity) flags = Intent.FLAG_ACTIVITY_NEW_TASK or Intent.FLAG_ACTIVITY_CLEAR_TASK
component = ComponentName(BuildConfig.APPLICATION_ID, AppErrorsDetailActivity::class.java.name) if (isOutSide) component = ComponentName(BuildConfig.APPLICATION_ID, AppErrorsDetailActivity::class.java.name)
putExtra(FrameworkHooker.APP_ERRORS_INFO, appErrorsInfo) putExtra(FrameworkHooker.APP_ERRORS_INFO, appErrorsInfo)
}) })
}.onFailure { context.toast(msg = "Start AppErrorsDetailActivity failed") } }.onFailure { context.toast(msg = "Start AppErrorsDetailActivity failed") }