cpp_crash场景使能APPrecover

Change-Id: I91fc242be6587e77d0b8e1f5c3a3ab812c0af695
Signed-off-by: tsuk1ii <linsicheng1@huawei.com>
This commit is contained in:
l00814634
2026-03-10 11:36:46 +08:00
parent 8d8e9f58d8
commit 8c7ca19fbc
3 changed files with 7 additions and 2 deletions
@@ -51,7 +51,8 @@ std::atomic<bool> g_blocked = false;
const int DELAY_TIME = 1000;
AppRecovery::AppRecovery() : isEnable_(false), restartFlag_(RestartFlag::ALWAYS_RESTART),
saveOccasion_(SaveOccasionFlag::SAVE_WHEN_ERROR), saveMode_(SaveModeFlag::SAVE_WITH_FILE)
saveOccasion_(SaveOccasionFlag::SAVE_WHEN_ERROR), saveMode_(SaveModeFlag::SAVE_WITH_FILE),
crashFlag_(RestartFlag::NO_RESTART)
{
}
@@ -144,7 +145,7 @@ bool AppRecovery::AddAbility(std::shared_ptr<AbilityRuntime::UIAbility> ability,
ability->EnableAbilityRecovery(abilityRecovery, useAppSettedValue_.load());
abilityRecoverys_.push_back(abilityRecovery);
std::shared_ptr<AAFwk::AbilityManagerClient> abilityMgr = AAFwk::AbilityManagerClient::GetInstance();
abilityMgr->SetAppRecoveryFlag(token_.promote(), restartFlag_);
abilityMgr->SetAppRecoveryFlag(token_.promote(), crashFlag_);
return true;
}
@@ -75,6 +75,7 @@ private:
uint16_t restartFlag_;
uint16_t saveOccasion_;
uint16_t saveMode_;
uint16_t crashFlag_;
wptr<IRemoteObject> token_;
AAFwk::Want mainWant_;
std::weak_ptr<AppExecFwk::EventHandler> mainHandler_;
@@ -16830,6 +16830,9 @@ void AbilityManagerService::HandleRecoveryRecipient(
abilityRecord->GetAbilityInfo().bundleName.c_str(),
restartFlag);
if (restartFlag == AppExecFwk::RestartFlag::NO_RESTART) {
return;
}
if (restartFlag == AppExecFwk::RestartFlag::ALWAYS_RESTART ||
(restartFlag & AppExecFwk::RestartFlag::RESTART_WHEN_CPP_CRASH) != 0) {
TAG_LOGD(AAFwkTag::ABILITYMGR, "enable OnAbilityRequestDone");