From 7994bf8c475573f582c0cee7134e3b140a32dfd4 Mon Sep 17 00:00:00 2001 From: wangdengjia Date: Fri, 2 Dec 2022 16:18:03 +0800 Subject: [PATCH] =?UTF-8?q?fixed=207ee330d=20from=20https://gitee.com/skyb?= =?UTF-8?q?lackleon/ability=5Fability=5Fruntime=5F1218/pulls/4130=20IssueN?= =?UTF-8?q?o:#I64CFK:process=5Fdata=E6=96=B0=E5=A2=9ErequestProcCode?= =?UTF-8?q?=E5=AD=97=E6=AE=B5=20Description:added=20param=20Sig:ability=5F?= =?UTF-8?q?ability=5Fruntime=20Feature=20or=20Bugfix:Bugfix=20Binary=20Sou?= =?UTF-8?q?rce:No=20Signed-off-by:=20wangdengjia=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangdengjia --- .../app_manager/include/appmgr/process_data.h | 1 + .../inner_api/app_manager/src/appmgr/process_data.cpp | 3 ++- services/appmgr/include/app_running_record.h | 5 +++++ services/appmgr/src/app_mgr_service_inner.cpp | 2 ++ services/appmgr/src/app_running_record.cpp | 11 +++++++++++ services/appmgr/src/app_state_observer_manager.cpp | 1 + 6 files changed, 22 insertions(+), 1 deletion(-) diff --git a/interfaces/inner_api/app_manager/include/appmgr/process_data.h b/interfaces/inner_api/app_manager/include/appmgr/process_data.h index 21e3166bd9c..ca27119524b 100644 --- a/interfaces/inner_api/app_manager/include/appmgr/process_data.h +++ b/interfaces/inner_api/app_manager/include/appmgr/process_data.h @@ -54,6 +54,7 @@ struct ProcessData : public Parcelable { bool isContinuousTask = false; bool isKeepAlive = false; bool isFocused = false; + int32_t requestProcCode = 0; }; } // namespace AppExecFwk } // namespace OHOS diff --git a/interfaces/inner_api/app_manager/src/appmgr/process_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/process_data.cpp index 3ecc5725159..08996bf55f7 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/process_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/process_data.cpp @@ -24,7 +24,7 @@ bool ProcessData::Marshalling(Parcel &parcel) const { return (parcel.WriteString(bundleName) && parcel.WriteInt32(pid) && parcel.WriteInt32(uid) && parcel.WriteInt32(static_cast(state)) && parcel.WriteBool(isContinuousTask) && - parcel.WriteBool(isKeepAlive) && parcel.WriteBool(isFocused)); + parcel.WriteBool(isKeepAlive) && parcel.WriteBool(isFocused) && parcel.WriteInt32(requestProcCode)); } bool ProcessData::ReadFromParcel(Parcel &parcel) @@ -36,6 +36,7 @@ bool ProcessData::ReadFromParcel(Parcel &parcel) isContinuousTask = parcel.ReadBool(); isKeepAlive = parcel.ReadBool(); isFocused = parcel.ReadBool(); + requestProcCode = parcel.ReadInt32(); return true; } diff --git a/services/appmgr/include/app_running_record.h b/services/appmgr/include/app_running_record.h index 2afd935eab0..047b18079a2 100644 --- a/services/appmgr/include/app_running_record.h +++ b/services/appmgr/include/app_running_record.h @@ -548,6 +548,10 @@ public: int64_t GetAppStartTime() const; + void SetRequestProcCode(int32_t requestProcCode); + + int32_t GetRequestProcCode() const; + private: /** * SearchTheModuleInfoNeedToUpdated, Get an uninitialized abilityStage data. @@ -644,6 +648,7 @@ private: AppSpawnStartMsg startMsg_; int32_t appIndex_ = 0; bool securityFlag_ = false; + int32_t requestProcCode_; }; } // namespace AppExecFwk } // namespace OHOS diff --git a/services/appmgr/src/app_mgr_service_inner.cpp b/services/appmgr/src/app_mgr_service_inner.cpp index e9f73a34086..093fe3f4785 100644 --- a/services/appmgr/src/app_mgr_service_inner.cpp +++ b/services/appmgr/src/app_mgr_service_inner.cpp @@ -171,6 +171,7 @@ void AppMgrServiceInner::LoadAbility(const sptr &token, const spt StartProcess(abilityInfo->applicationName, processName, startFlags, appRecord, appInfo->uid, appInfo->bundleName, bundleIndex); } else { + appRecord->SetRequestProcCode((want == nullptr) ? 0 : want->GetIntParam("requestProcCode", 0)); StartAbility(token, preToken, abilityInfo, appRecord, hapModuleInfo, want); } PerfProfile::GetInstance().SetAbilityLoadEndTime(GetTickCount()); @@ -879,6 +880,7 @@ std::shared_ptr AppMgrServiceInner::CreateAppRunningRecord(con } appRecord->SetAppIndex(want->GetIntParam(DLP_PARAMS_INDEX, 0)); appRecord->SetSecurityFlag(want->GetBoolParam(DLP_PARAMS_SECURITY_FLAG, false)); + appRecord->SetRequestProcCode(want->GetIntParam("requestProcCode", 0)); } if (preToken) { diff --git a/services/appmgr/src/app_running_record.cpp b/services/appmgr/src/app_running_record.cpp index 23824c5e04c..919e8f3482d 100644 --- a/services/appmgr/src/app_running_record.cpp +++ b/services/appmgr/src/app_running_record.cpp @@ -1353,5 +1353,16 @@ int64_t AppRunningRecord::GetAppStartTime() const { return startTimeMillis_; } + +void AppRunningRecord::SetRequestProcCode(int32_t requestProcCode) +{ + requestProcCode_ = requestProcCode; +} + + int32_t AppRunningRecord::GetRequestProcCode() const + { + return requestProcCode_; + } + } // namespace AppExecFwk } // namespace OHOS diff --git a/services/appmgr/src/app_state_observer_manager.cpp b/services/appmgr/src/app_state_observer_manager.cpp index 2a58e0eae62..23740e6744d 100644 --- a/services/appmgr/src/app_state_observer_manager.cpp +++ b/services/appmgr/src/app_state_observer_manager.cpp @@ -388,6 +388,7 @@ ProcessData AppStateObserverManager::WrapProcessData(const std::shared_ptrIsContinuousTask(); processData.isKeepAlive = appRecord->IsKeepAliveApp(); processData.isFocused = appRecord->GetFocusFlag(); + processData.requestProcCode = appRecord->GetRequestProcCode(); return processData; } -- Gitee