diff --git a/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h b/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h index 487aa95f96..41a3cecf02 100644 --- a/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h +++ b/interfaces/inner_api/app_manager/include/appmgr/app_state_data.h @@ -69,6 +69,7 @@ struct AppStateData : public Parcelable { int32_t state = 0; int32_t appIndex = 0; uint32_t accessTokenId = 0; + int32_t preloadMode = -1; ExtensionAbilityType extensionType = ExtensionAbilityType::UNSPECIFIED; std::vector renderPids; std::string bundleName; diff --git a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp index d9e0b15001..3b5b862bb8 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/app_state_data.cpp @@ -14,6 +14,7 @@ */ #include "app_state_data.h" +#include "app_mgr_constants.h" #include "hilog_tag_wrapper.h" #include "ui_extension_utils.h" @@ -27,7 +28,8 @@ bool AppStateData::Marshalling(Parcel &parcel) const && parcel.WriteInt32(static_cast(extensionType)) && parcel.WriteInt32Vector(renderPids) && parcel.WriteString(callerBundleName) && parcel.WriteBool(isSplitScreenMode) && parcel.WriteInt32(callerUid) && parcel.WriteBool(isFloatingWindowMode) && parcel.WriteInt32(appIndex) && parcel.WriteBool(isPreloadModule) - && parcel.WriteBool(isPrelaunch) && parcel.WriteBool(isFromWindowFocusChanged)); + && parcel.WriteBool(isPrelaunch) && parcel.WriteBool(isFromWindowFocusChanged) + && parcel.WriteInt32(preloadMode)); } bool AppStateData::ReadFromParcel(Parcel &parcel) @@ -48,6 +50,7 @@ bool AppStateData::ReadFromParcel(Parcel &parcel) isPreloadModule = parcel.ReadBool(); isPrelaunch = parcel.ReadBool(); isFromWindowFocusChanged = parcel.ReadBool(); + preloadMode = parcel.ReadInt32(); return true; } diff --git a/services/appmgr/src/app_state_observer_manager.cpp b/services/appmgr/src/app_state_observer_manager.cpp index 9ebdedd475..cc4c6db795 100644 --- a/services/appmgr/src/app_state_observer_manager.cpp +++ b/services/appmgr/src/app_state_observer_manager.cpp @@ -684,7 +684,9 @@ void AppStateObserverManager::HandleOnAppProcessCreated(const std::shared_ptrGetPreloadMode() == PreloadMode::PRE_LAUNCH; - data.isPreloadModule = appRecord->GetPreloadMode() != PreloadMode::PRESS_DOWN; + data.isPreloadModule = appRecord->GetPreloadMode() == PreloadMode::PRE_MAKE + || appRecord->GetPreloadMode() == PreloadMode::PRELOAD_MODULE + || appRecord->GetPreloadMode() == PreloadMode::PRE_LAUNCH; data.preloadMode = static_cast(appRecord->GetPreloadMode()); if (data.bundleName == XIAOYI_BUNDLE_NAME && data.extensionType == ExtensionAbilityType::SERVICE) { TAG_LOGI(AAFwkTag::APPMGR, "change processType to NORMAL"); @@ -1228,7 +1230,10 @@ AppStateData AppStateObserverManager::WrapAppStateData(const std::shared_ptr(state); appStateData.uid = appRecord->GetUid(); appStateData.extensionType = appRecord->GetExtensionType(); - appStateData.isPreloadModule = appRecord->GetPreloadMode() != PreloadMode::PRESS_DOWN; + appStateData.isPreloadModule = appRecord->GetPreloadMode() == PreloadMode::PRE_MAKE + || appRecord->GetPreloadMode() == PreloadMode::PRELOAD_MODULE + || appRecord->GetPreloadMode() == PreloadMode::PRE_LAUNCH; + appStateData.preloadMode = static_cast(appRecord->GetPreloadMode()); appStateData.callerUid = appRecord->GetCallerUid(); appStateData.isFromWindowFocusChanged = isFromWindowFocusChanged; if (appRecord->GetApplicationInfo() != nullptr) {