harmony 鸿蒙WorkSchedulerExtensionContext (System API)
WorkSchedulerExtensionContext (System API)
The WorkSchedulerExtensionContext module, inherited from ExtensionContext, provides a context environment for the WorkSchedulerExtensionAbility.
This module provides APIs for accessing the resources of a WorkSchedulerExtensionAbility.
NOTE
The initial APIs of this module are supported since API version 10. Newly added APIs will be marked with a superscript to indicate their earliest API version.
The APIs of this module can be used only in the stage model.
The APIs provided by this module are system APIs.
How to Use
The context is obtained through a WorkSchedulerExtensionAbility child class instance.
import { WorkSchedulerExtensionAbility, workScheduler } from '@kit.BackgroundTasksKit';
class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility {
onWorkStart(workInfo: workScheduler.WorkInfo) {
let WorkSchedulerExtensionContext = this.context; // Obtain the WorkSchedulerExtensionContext.
}
}
WorkSchedulerExtensionContext.startServiceExtensionAbility13+
startServiceExtensionAbility(want: Want): Promise<void>
Starts a ServiceExtensionAbility. This API uses a promise to return the result.
System capability: SystemCapability.ResourceSchedule.WorkScheduler
Parameters
Parameter | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information about the target ability. |
Returns
Type | Description |
---|---|
Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
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 | Can not start 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. |
Example
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)}`);
// Start the corresponding 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>
Stops a ServiceExtensionAbility. This API uses a promise to return the result.
System capability: SystemCapability.ResourceSchedule.WorkScheduler
Parameters
Parameter | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information about the target ability. |
Returns
Type | Description |
---|---|
Promise<void> | Promise that returns no value. |
Error codes
For details about the error codes, see Universal Error Codes and Ability Error Codes.
ID | Error Message |
---|---|
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 | Can not start 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. |
Example
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)}`);
// Stop the corresponding 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 鸿蒙background_process_manager.h
harmony 鸿蒙DeviceUsageStatistics Error Codes
harmony 鸿蒙backgroundTaskManager Error Codes
harmony 鸿蒙reminderAgentManager Error Codes
harmony 鸿蒙workScheduler Error Codes
harmony 鸿蒙@ohos.WorkSchedulerExtensionAbility (Deferred Task Scheduling Callbacks)
- 所属分类: 后端技术
- 本文标签:
热门推荐
-
2、 - 优质文章
-
3、 gate.io
-
8、 golang
-
9、 openharmony
-
10、 Vue中input框自动聚焦