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 8954716504988d7f6a9dfa275377d0b0a54164e3..7522047b1696a17e65b1495a5bb4bdde568ca34a 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" @@ -253,7 +254,6 @@ ohos_shared_library("abilitykit_native") { "ability_runtime:task_dispatcher", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", - "background_task_mgr:bgtaskmgr_innerkits", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "bytrace_standard:bytrace_core", @@ -270,6 +270,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 62cd57c035e0cce4eedda0f8030bee5ffaeb2790..e5f25d2c3eb8dc81941248a9e5a9b44d55913665 100755 --- a/frameworks/kits/ability/native/src/ability.cpp +++ b/frameworks/kits/ability/native/src/ability.cpp @@ -23,7 +23,9 @@ #include "ability_post_event_timeout.h" #include "ability_runtime/js_ability.h" #include "abs_shared_result_set.h" +#ifdef BGTASKMGR_CONTINUOUS_TASK_ENABLE #include "background_task_mgr_helper.h" +#endif #include "bytrace.h" #include "configuration_convertor.h" #include "connection_manager.h" @@ -31,7 +33,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" @@ -2116,10 +2120,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 } /** @@ -2129,7 +2137,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