mirror of
https://github.com/openharmony/ability_ability_runtime.git
synced 2026-08-26 18:47:03 -04:00
cpp_crash场景使能APPrecover
Change-Id: I91fc242be6587e77d0b8e1f5c3a3ab812c0af695 Signed-off-by: tsuk1ii <linsicheng1@huawei.com>
This commit is contained in:
@@ -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");
|
||||
|
||||
Reference in New Issue
Block a user