diff --git a/aafwk.gni b/aafwk.gni index 0e00cbd507b9624e88f2cf225ebb52c8760d1d9e..affbcdd29c7dc79d44bbdb4442f8a5ed93900f0e 100644 --- a/aafwk.gni +++ b/aafwk.gni @@ -24,3 +24,12 @@ dispatcher_path = "${aafwk_path}/common/task_dispatcher" system_test_app_path = "${aafwk_path}/test/resource/amssystemtestability/abilitySrc" + +declare_args() { + background_task_mgr_continuous_task_enable = true + + if (defined(global_parts_info) && + !defined(global_parts_info.resourceschedule_background_task_mgr)) { + background_task_mgr_continuous_task_enable = false + } +} diff --git a/frameworks/kits/ability/native/BUILD.gn b/frameworks/kits/ability/native/BUILD.gn index 0460d083fea72c9b876e6fe8adf370ec1d38d105..88086d433266318de8fe41e1309fd84153eb05cd 100644 --- a/frameworks/kits/ability/native/BUILD.gn +++ b/frameworks/kits/ability/native/BUILD.gn @@ -12,6 +12,7 @@ # limitations under the License. import("//build/ohos.gni") +import("//foundation/aafwk/standard/aafwk.gni") import("//foundation/aafwk/standard/feature.gni") SUBSYSTEM_DIR = "//foundation/aafwk/standard/frameworks/kits/ability/native" INNERKITS_PATH = "//foundation/aafwk/standard/interfaces/innerkits" @@ -258,7 +259,6 @@ ohos_shared_library("abilitykit_native") { "//foundation/appexecfwk/standard/common:libappexecfwk_common", "//foundation/appexecfwk/standard/interfaces/innerkits/appexecfwk_base:appexecfwk_base", "//foundation/distributedschedule/samgr/interfaces/innerkits/samgr_proxy:samgr_proxy", - "//foundation/resourceschedule/background_task_mgr/interfaces/innerkits:bgtaskmgr_innerkits", ] external_deps = [ @@ -281,6 +281,12 @@ ohos_shared_library("abilitykit_native") { "utils_base:utils", ] + defines = [] + if (background_task_mgr_continuous_task_enable) { + external_deps += [ "background_task_mgr:bgtaskmgr_innerkits" ] + defines += [ "BGTASKMGR_CONTINUOUS_TASK_ENABLE" ] + } + public_deps = [ "//base/global/resmgr_standard/frameworks/resmgr:global_resmgr", "//base/hiviewdfx/hilog/interfaces/native/innerkits:libhilog", diff --git a/frameworks/kits/ability/native/src/ability.cpp b/frameworks/kits/ability/native/src/ability.cpp index 25b0064b8824293d3bd4c169fc9d18e7a0100b59..0ce20baf60e781374f34e48a6140948234823551 100755 --- a/frameworks/kits/ability/native/src/ability.cpp +++ b/frameworks/kits/ability/native/src/ability.cpp @@ -24,7 +24,9 @@ #include "ability_runtime/js_ability.h" #include "abs_shared_result_set.h" #include "app_log_wrapper.h" +#ifdef BGTASKMGR_CONTINUOUS_TASK_ENABLE #include "background_task_mgr_helper.h" +#endif #include "bytrace.h" #include "configuration_convertor.h" #include "connection_manager.h" @@ -32,7 +34,9 @@ #include "continuation_manager.h" #include "continuation_register_manager.h" #include "continuation_register_manager_proxy.h" +#ifdef BGTASKMGR_CONTINUOUS_TASK_ENABLE #include "continuous_task_param.h" +#endif #include "data_ability_operation.h" #include "data_ability_predicates.h" #include "data_ability_result.h" @@ -2114,10 +2118,14 @@ ErrCode Ability::DeleteForm(const int64_t formId) */ int Ability::StartBackgroundRunning(const AbilityRuntime::WantAgent::WantAgent &wantAgent) { +#ifdef BGTASKMGR_CONTINUOUS_TASK_ENABLE uint32_t defaultBgMode = 0; BackgroundTaskMgr::ContinuousTaskParam taskParam = BackgroundTaskMgr::ContinuousTaskParam(false, defaultBgMode, std::make_shared(wantAgent), abilityInfo_->name, GetToken()); return BackgroundTaskMgr::BackgroundTaskMgrHelper::RequestStartBackgroundRunning(taskParam); +#else + return ERR_INVALID_OPERATION; +#endif } /** @@ -2127,7 +2135,11 @@ int Ability::StartBackgroundRunning(const AbilityRuntime::WantAgent::WantAgent & */ int Ability::StopBackgroundRunning() { +#ifdef BGTASKMGR_CONTINUOUS_TASK_ENABLE return BackgroundTaskMgr::BackgroundTaskMgrHelper::RequestStopBackgroundRunning(abilityInfo_->name, GetToken()); +#else + return ERR_INVALID_OPERATION; +#endif } #ifdef SUPPORT_GRAPHICS