openharmony 鸿蒙 js-apis-resourceschedule-backgroundTaskManager-sys

2025-06-12 浏览 (1)

@ohos.resourceschedule.backgroundTaskManager (后台任务管理)(系统接口)

本模块提供申请后台任务的接口。当应用退至后台时,开发者可以通过本模块接口为应用申请短时、长时任务,避免应用进程被终止或挂起。

说明:

导入模块

import { backgroundTaskManager } from '@kit.BackgroundTasksKit';  

backgroundTaskManager.applyEfficiencyResources

applyEfficiencyResources(request: EfficiencyResourcesRequest): void

申请能效资源。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

参数

参数名类型必填说明
requestEfficiencyResourcesRequest请求的必要信息,包括资源类型、超时时间等。

错误码

以下错误码的详细介绍请参见通用错误码backgroundTaskManager错误码

错误码ID错误信息
201Permission denied.
202Not System App.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameters types; 3. Parameter verification failed.
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Internal transaction failed.
9800004System service operation failed.
18700001Caller information verification failed for an energy resource request.

示例

import { BusinessError } from '@kit.BasicServicesKit';

let request: backgroundTaskManager.EfficiencyResourcesRequest = {
    resourceTypes: backgroundTaskManager.ResourceType.CPU,
    isApply: true,
    timeOut: 0,
    reason: "apply",
    isPersist: true,
    isProcess: false,
};
try {
    backgroundTaskManager.applyEfficiencyResources(request);
    console.info("applyEfficiencyResources success. ");
} catch (error) {
    console.error(`applyEfficiencyResources failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`);
}

backgroundTaskManager.resetAllEfficiencyResources

resetAllEfficiencyResources(): void

释放已申请的全部能效资源。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

错误码

以下错误码的详细介绍请参见通用错误码backgroundTaskManager错误码

错误码ID错误信息
201Permission denied.
202Not System App.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified.
9800001Memory operation failed.
9800002Parcel operation failed.
9800003Internal transaction failed.
9800004System service operation failed.
18700001Caller information verification failed for an energy resource request.

示例

import { BusinessError } from '@kit.BasicServicesKit';

try {
    backgroundTaskManager.resetAllEfficiencyResources();
} catch (error) {
    console.error(`resetAllEfficiencyResources failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`);
}

backgroundTaskManager.getAllEfficiencyResources20+

getAllEfficiencyResources(): Promise<EfficiencyResourcesInfo[]>

获取已申请的所有能效资源信息,如能效资源类型等,使用Promise异步回调。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

返回值

类型说明
Promise<EfficiencyResourcesInfo[]>Promise对象,返回所有能效资源信息。

错误码

以下错误码的详细介绍请参见通用错误码backgroundTaskManager错误码

错误码ID错误信息
202Not System App.
18700001Caller information verification failed for an energy resource request.
18700002Failed to write data into parcel. Possible reasons: 1. Invalid parameters; 2. Failed to apply for memory.
18700004System service operation failed.

示例

import { backgroundTaskManager } from '@kit.BackgroundTasksKit';
import { BusinessError } from '@kit.BasicServicesKit';

try {
    backgroundTaskManager.getAllEfficiencyResources().then((res: backgroundTaskManager.EfficiencyResourcesInfo[]) => {
        console.info(`Operation getAllEfficiencyResources succeeded. data: ` + JSON.stringify(res));
    }).catch((error : BusinessError) => {
        console.error(`Operation getAllEfficiencyResources failed. code is ${error.code} message is ${error.message}`);
    });
} catch (error) {
    console.error(`Operation getAllEfficiencyResources failed. code is ${(error as BusinessError).code} message is ${(error as BusinessError).message}`);
}

BackgroundMode

长时任务模式。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.ContinuousTask

名称说明
WIFI_INTERACTION7WLAN相关。
系统API: 此接口为系统接口。

EfficiencyResourcesRequest

能效资源申请参数。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

名称类型必填说明
resourceTypesnumber申请的资源类型。
isApplyboolean申请或释放资源。
- true表示申请资源。
- false表示释放部分资源。
timeOutnumber资源使用时间,单位为毫秒。
isPersistboolean是否永久持有资源,默认为false。
- true表示永久持有。
- false表示有限时间内持有。
isProcessboolean进程或应用申请,默认为false。
- true表示进程申请。
- false表示应用申请。
reasonstring申请资源原因。

ResourceType

能效资源类型。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

名称说明
CPU1CPU资源,申请后应用进程不被挂起。
COMMON_EVENT2公共事件资源,申请后应用进程被挂起后,可以收到公共事件。
TIMER4计时器,申请后应用进程被挂起后,Timer仍然可以唤醒应用。
WORK_SCHEDULER8延迟任务资源,申请后延迟任务管控变宽松。
BLUETOOTH16蓝牙资源,申请后应用进程被挂起后,蓝牙相关事件仍然可以唤醒应用。
GPS32GPS资源,申请后应用进程被挂起后,GPS相关事件可以唤醒应用。
AUDIO64音频资源,有音频播放时对应的应用进程不被挂起。
RUNNING_LOCK10+128RUNNING_LOCK资源,申请后挂起状态不会代理RUNNING_BACKGROUND锁。
SENSOR10+256申请后不拦截Sensor回调。

EfficiencyResourcesInfo20+

能效资源信息。

系统能力: SystemCapability.ResourceSchedule.BackgroundTaskManager.EfficiencyResourcesApply

系统API: 此接口为系统接口。

名称类型只读可选说明
resourceTypesnumber能效资源类型。
timeoutnumber超时时间,单位:ms。
isPersistentboolean是否永久持有资源,默认为false。取值为true表示永久持有。取值为false表示有限时间内持有。
isForProcessboolean进程或应用申请,取值为true表示进程申请。取值为false表示应用申请。
reasonstring申请资源原因。
uidnumber应用的UID。
pidnumber应用进程的PID。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Background Tasks Kit(后台任务开发服务)

harmony 鸿蒙BackgroundProcessManager

harmony 鸿蒙TransientTask

harmony 鸿蒙TransientTask_DelaySuspendInfo

harmony 鸿蒙TransientTask_TransientTaskInfo

harmony 鸿蒙background_process_manager.h

harmony 鸿蒙DeviceUsageStatistics错误码

harmony 鸿蒙backgroundTaskManager错误码

harmony 鸿蒙reminderAgentManager错误码

harmony 鸿蒙workScheduler错误码

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/r2dxeC