services/abilitymgr/src/ability_stack_manager.cpp

Signed-off-by: zhaoyuan17 <zhaoyuan17@huawei.com>
This commit is contained in:
zhaoyuan17
2021-10-20 15:09:58 +00:00
parent 05f9be1449
commit dd341e38e2
2 changed files with 5 additions and 9 deletions
@@ -347,14 +347,6 @@ int AbilityStackManager::TerminateAbility(const sptr<IRemoteObject> &token, int
return LOCK_MISSION_STATE_DENY_REQUEST;
}
// if ability is in multiwindow stack, and is bottom ability of this mission,
// just background, don't schedule terminate
if (!IsFullScreenStack(abilityRecord->GetMissionStackId()) &&
missionRecord->GetBottomAbilityRecord() == abilityRecord) {
HILOG_INFO("Mulitwindow stack , bottom ability of mission .just background, don't schedule terminate.");
return MoveMissionToEndLocked(missionRecord->GetMissionRecordId());
}
HILOG_INFO("Schedule normal terminate process.");
abilityRecord->SetTerminatingState();
return TerminateAbilityLocked(abilityRecord, resultCode, resultWant);
@@ -331,7 +331,11 @@ int DataAbilityRecord::RemoveClients(const std::shared_ptr<AbilityRecord> &clien
while (it != clients_.end()) {
if (!it->isSystem) {
auto clientAbilityRecord = Token::GetAbilityRecordByToken(it->client);
CHECK_POINTER_CONTINUE(clientAbilityRecord);
if (!clientAbilityRecord) {
HILOG_ERROR("clientAbilityRecord is nullptr, continue.");
++it;
continue;
}
if (clientAbilityRecord == client) {
appScheduler->AbilityBehaviorAnalysis(
ability_->GetToken(), clientAbilityRecord->GetToken(), 0, 0, 0);