harmony 鸿蒙WorkSchedulerExtensionContext (系统接口)
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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | 启动Ability的want信息。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | The application does not have permission to call the interface. |
202 | The application is not system-app, can not use system-api. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
16000001 | The specified ability does not exist. |
16000002 | Incorrect ability type. |
16000004 | Cannot start an invisible component. |
16000005 | The specified process does not have the permission. |
16000006 | Cross-user operations are not allowed. |
16000008 | The crowdtesting application expires. |
16000011 | The context does not exist. |
16000012 | The application is controlled. |
16000013 | The application is controlled by EDM. |
16000019 | Can not match any component. |
16000050 | Internal error. |
16200001 | The 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
参数:
参数名 | 类型 | 必填 | 说明 |
---|---|---|---|
want | Want | 是 | 停止Ability的want信息。 |
返回值:
类型 | 说明 |
---|---|
Promise<void> | 无返回结果的Promise对象。 |
错误码:
错误码ID | 错误信息 |
---|---|
201 | The application does not have permission to call the interface. |
202 | The application is not system-app, can not use system-api. |
401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types; 3. Parameter verification failed. |
16000001 | The specified ability does not exist. |
16000002 | Incorrect ability type. |
16000004 | Cannot start an invisible component. |
16000005 | The specified process does not have the permission. |
16000006 | Cross-user operations are not allowed. |
16000011 | The context does not exist. |
16000050 | Internal error. |
16200001 | The 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.');
});
}
}
你可能感兴趣的鸿蒙文章
harmony 鸿蒙Background Tasks Kit(后台任务开发服务)
harmony 鸿蒙BackgroundProcessManager
harmony 鸿蒙TransientTask_DelaySuspendInfo
harmony 鸿蒙TransientTask_TransientTaskInfo
harmony 鸿蒙background_process_manager.h
harmony 鸿蒙DeviceUsageStatistics错误码
harmony 鸿蒙backgroundTaskManager错误码
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦