!8582 [fix]部分场景startAbility时对ability是否是后台拉起判断有误

Merge pull request !8582 from 张亚菲/zyf
This commit is contained in:
openharmony_ci 2024-05-19 09:14:17 +00:00 committed by Gitee
commit 643a212f1b
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -8803,7 +8803,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 {