From 9dea3dcd76d059f15c69e0f94fe908a1da9f311e Mon Sep 17 00:00:00 2001 From: zhangyafei-echo Date: Fri, 17 May 2024 20:16:09 +0800 Subject: [PATCH] Fix background state check to startability. Signed-off-by: zhangyafei-echo Change-Id: Ib9dfcc42aa673a5a37ee99c78a77b3e935ff1abd --- services/abilitymgr/src/ability_manager_service.cpp | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index 886932d633f..7c6daa21cc0 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -8796,7 +8796,11 @@ int AbilityManagerService::IsCallFromBackground(const AbilityRequest &abilityReq return ERR_OK; } auto abilityState = callerAbility->GetAbilityState(); - if (abilityState == AbilityState::BACKGROUND || abilityState == AbilityState::BACKGROUNDING) { + if (abilityState == AbilityState::BACKGROUND || abilityState == AbilityState::BACKGROUNDING || + // If uiability or uiextensionability ability state is foreground when terminate, + // it will move to background firstly. So if startAbility in onBackground() lifecycle, + // the actual ability state may be had changed to terminating from background or backgrounding. + abilityState == AbilityState::TERMINATING) { return ERR_OK; } } else { -- Gitee