diff --git a/services/src/print_service_ability.cpp b/services/src/print_service_ability.cpp index 27e81aa323dca8b3321795130f66ebce49a10ade..508d6c8588964c3e596ec26b103cafcca2dbcd95 100644 --- a/services/src/print_service_ability.cpp +++ b/services/src/print_service_ability.cpp @@ -747,8 +747,8 @@ int32_t PrintServiceAbility::CancelPrintJob(const std::string &jobId) auto cbFunc = extCallbackMap_[cid]; auto tmpPrintJob = queuedJobList_[jobId]; auto callback = [=]() { - if (cbFunc != nullptr) { - cbFunc->OnCallback(*tmpPrintJob); + if (cbFunc != nullptr && cbFunc->OnCallback(*tmpPrintJob) == false) { + UpdatePrintJobState(jobId, PRINT_JOB_COMPLETED, PRINT_JOB_COMPLETED_CANCELLED); } }; if (helper_->IsSyncMode()) {