openharmony 鸿蒙 js-apis-WorkSchedulerExtensionContext-sys

2026-08-25 浏览 (1)

WorkSchedulerExtensionContext(系统接口)

WorkSchedulerExtensionContext是WorkSchedulerExtensionAbility的上下文环境,继承自ExtensionContext

WorkSchedulerExtensionContext可直接作为WorkSchedulerExtension的上下文环境,提供允许访问特定于WorkSchedulerExtensionAbility的资源的能力。

说明:

本模块首批接口从API version 10开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。

本模块接口仅可在Stage模型下使用。

本模块为系统接口。

使用说明

通过WorkSchedulerExtensionAbility子类实例来获取。

import { WorkSchedulerExtensionAbility, workScheduler } from '@kit.BackgroundTasksKit';

class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
    onWorkStart(workInfo: workScheduler.WorkInfo) {
        let WorkSchedulerExtensionContext = this.context; // 获取WorkSchedulerExtensionContext
    }
}

WorkSchedulerExtensionContext.startServiceExtensionAbility13+

startServiceExtensionAbility(want: Want): Promise<void>

启动ServiceExtensionAbility,使用Promise异步回调。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数:

参数名类型必填说明
wantWant启动Ability的want信息。

返回值:

类型说明
Promise<void>无返回结果的Promise对象。

错误码:

以下错误码详细介绍请参考通用错误码元能力子系统错误码

错误码ID错误信息
201The application does not have permission to call the interface.
202The application is not system-app, can not use system-api.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
16000001The specified ability does not exist.
16000002Incorrect ability type.
16000004Cannot start an invisible component.
16000005The specified process does not have the permission.
16000006Cross-user operations are not allowed.
16000008The crowdtesting application expires.
16000011The context does not exist.
16000012The application is controlled.
16000013The application is controlled by EDM.
16000050Internal error.
16200001The caller has been released.

示例:

import { WorkSchedulerExtensionAbility, workScheduler } from '@kit.BackgroundTasksKit';
import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let want : Want = {
  bundleName: 'com.example.workscheduler',
  abilityName: 'ServiceExtAbility'
}

export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
  onWorkStart(workInfo: workScheduler.WorkInfo) {
    console.info(`onWorkStart, workInfo = ${JSON.stringify(workInfo)}`);
      // 拉起对应的service
      this.context.startServiceExtensionAbility(want).then(() => {
        console.info('succeeded in starting ServiceExtensionAbility.');
      }).catch ((err: BusinessError) => {
        console.error('failed to start ServiceExtensionAbility.');
      });
  }

  onWorkStop(workInfo: workScheduler.WorkInfo) {
    console.info(`onWorkStop, workInfo is ${JSON.stringify(workInfo)}`);
  }
}

WorkSchedulerExtensionContext.stopServiceExtensionAbility13+

stopServiceExtensionAbility(want: Want): Promise<void>

停止ServiceExtensionAbility,使用Promise异步回调。

系统能力:SystemCapability.ResourceSchedule.WorkScheduler

参数:

参数名类型必填说明
wantWant停止Ability的want信息。

返回值:

类型说明
Promise<void>无返回结果的Promise对象。

错误码:

以下错误码详细介绍请参考通用错误码元能力子系统错误码

错误码ID错误信息
201The application does not have permission to call the interface.
202The application is not system-app, can not use system-api.
401Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed.
16000001The specified ability does not exist.
16000002Incorrect ability type.
16000004Cannot start an invisible component.
16000005The specified process does not have the permission.
16000006Cross-user operations are not allowed.
16000011The context does not exist.
16000050Internal error.
16200001The caller has been released.

示例:

import { WorkSchedulerExtensionAbility, workScheduler } from '@kit.BackgroundTasksKit';
import { Want } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';

let want : Want = {
  bundleName: 'com.example.workscheduler',
  abilityName: 'ServiceExtAbility'
}

export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
  onWorkStart(workInfo: workScheduler.WorkInfo) {
    console.info(`onWorkStart, workInfo = ${JSON.stringify(workInfo)}`);
  }

  onWorkStop(workInfo: workScheduler.WorkInfo) {
    console.info(`onWorkStop, workInfo is ${JSON.stringify(workInfo)}`);
      // 停止对应的service
      this.context.stopServiceExtensionAbility(want).then(() => {
        console.info('succeeded in stopping ServiceExtensionAbility.');
      }).catch ((err: BusinessError) => {
        console.error('failed to stop ServiceExtensionAbility.');
      });
  }
}

你可能感兴趣的鸿蒙文章

openharmony 鸿蒙 js-apis-backgroundTaskManager

openharmony 鸿蒙 errorcode-DeviceUsageStatistics

openharmony 鸿蒙 capi-transient-task-type-h

openharmony 鸿蒙 errorcode-backgroundTaskMgr

openharmony 鸿蒙 js-apis-WorkSchedulerExtensionContext

openharmony 鸿蒙 js-apis-reminderAgent

openharmony 鸿蒙 errorcode-backgroundProcessManager

openharmony 鸿蒙 js-apis-WorkSchedulerExtensionAbility

openharmony 鸿蒙 errorcode-reminderAgentManager

openharmony 鸿蒙 capi-transienttask-transienttask-transienttaskinfo

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