diff --git a/interfaces/kits/napi/src/js_backgroundtask_subscriber.cpp b/interfaces/kits/napi/src/js_backgroundtask_subscriber.cpp index f4194b5fa6b926b956a6ed899a23430063d88d0d..6a475f3ee77404f0e1fe4c8e08de3f53ff5c652f 100644 --- a/interfaces/kits/napi/src/js_backgroundtask_subscriber.cpp +++ b/interfaces/kits/napi/src/js_backgroundtask_subscriber.cpp @@ -238,7 +238,7 @@ void JsBackgroundTaskSubscriber::HandleOnContinuousTaskSuspend( // set suspendReason napi_value suspendReason = nullptr; - napi_create_int32(env_, continuousTaskCallbackInfo->GetSuspendReason(), &suspendReason); + napi_create_int32(env_, -1, &suspendReason); napi_set_named_property(env_, jsContinuousTaskSuspendInfo, "suspendReason", suspendReason); napi_value argv[1] = { jsContinuousTaskSuspendInfo }; diff --git a/services/continuous_task/src/bg_continuous_task_mgr.cpp b/services/continuous_task/src/bg_continuous_task_mgr.cpp index cf3ffa82e10fc3687a684ffcd2c59d02b08b5d99..dd12947c9f987e9215714a7867a4161c811ac5ae 100644 --- a/services/continuous_task/src/bg_continuous_task_mgr.cpp +++ b/services/continuous_task/src/bg_continuous_task_mgr.cpp @@ -1205,7 +1205,12 @@ void BgContinuousTaskMgr::HandleSuspendContinuousTask(int32_t uid, int32_t pid, } BGTASK_LOGW("SuspendContinuousTask mode: %{public}d, key %{public}s", mode, key.c_str()); iter->second->suspendState_ = true; - iter->second->suspendReason_ = -1; + uint32_t reasonValue = ContinuousTaskSuspendReason::GetSuspendReasonValue(mode); + if (reasonValue == 0) { + iter->second->suspendReason_ = -1; + } else { + iter->second->suspendReason_ = static_cast(reasonValue); + } OnContinuousTaskChanged(iter->second, ContinuousTaskEventTriggerType::TASK_SUSPEND); RefreshTaskRecord(); break;