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 =
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")
}

View File

@@ -50,12 +50,13 @@ class AppErrorsDetailActivity : BaseActivity<ActivityAppErrorsDetailBinding>() {
* 启动 [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") }