diff --git a/zh-cn/application-dev/device/Readme-CN.md b/zh-cn/application-dev/device/Readme-CN.md index 238af0464cfa601cde081f594f9a70413315dc7b..3785f024ce86b5bcfe060bdd600c7345deac8049 100644 --- a/zh-cn/application-dev/device/Readme-CN.md +++ b/zh-cn/application-dev/device/Readme-CN.md @@ -11,5 +11,5 @@ - [传感器开发概述](sensor-overview.md) - [传感器开发指导](sensor-guidelines.md) - 振动 - - [振动开发概述](vibrator-guidelines.md) + - [振动开发概述](vibrator-overview.md) - [振动开发指导](vibrator-guidelines.md) diff --git a/zh-cn/application-dev/device/vibrator-overview.md b/zh-cn/application-dev/device/vibrator-overview.md index 8817a737a10b247a9663e3e9f1937625af3b9cb5..a1bbe9ff4159cc69956db74a57b27464a99c6d3e 100644 --- a/zh-cn/application-dev/device/vibrator-overview.md +++ b/zh-cn/application-dev/device/vibrator-overview.md @@ -9,6 +9,7 @@ Vibrator属于控制类小器件,主要包含以下四个模块:Vibrator API,Vibrator Framework,Vibrator Service和HD_IDL层。 **图1** 控制类小器件中的Vibrator + ![zh-cn_image_0000001180249428](figures/zh-cn_image_0000001180249428.png) - Vibrator API:提供振动器基础的API,主要包含振动器的列表查询,振动器的振动器效果查询,触发/关闭振动器等接口。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-basic-features-animator.md b/zh-cn/application-dev/reference/apis/js-apis-basic-features-animator.md index 9f94916032a8000ea9d5eeda565dfc2ff1fd2bee..813ca9b651ec5eff9456c193d82572e5c2babfa8 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-basic-features-animator.md +++ b/zh-cn/application-dev/reference/apis/js-apis-basic-features-animator.md @@ -97,7 +97,7 @@ update(options: AnimatorOptions): void **示例:** ``` -animator.update(options); +animator.update(options); ``` ### play @@ -110,7 +110,7 @@ play(): void **示例:** ``` -animator.play(); +animator.play(); ``` ### finish @@ -123,7 +123,7 @@ finish(): void **示例:** ``` -animator.finish(); +animator.finish(); ``` ### pause @@ -136,7 +136,7 @@ pause(): void **示例:** ``` -animator.pause(); +animator.pause(); ``` ### cancel @@ -149,7 +149,7 @@ cancel(): void **示例:** ``` -animator.cancel(); +animator.cancel(); ``` ### reverse @@ -162,7 +162,7 @@ reverse(): void **示例:** ``` -animator.reverse(); +animator.reverse(); ``` ### onframe @@ -180,7 +180,7 @@ onframe: (progress: number) => void **示例:** ``` -animator.onframe(); +animator.onframe(); ``` ### onfinish @@ -193,7 +193,7 @@ onfinish: () => void **示例:** ``` -animator.onfinish(); +animator.onfinish(); ``` ### oncancel @@ -206,7 +206,7 @@ oncancel: () => void **示例:** ``` -animator.oncancel(); +animator.oncancel(); ``` ### onrepeat @@ -217,7 +217,7 @@ onrepeat: () => void **示例:** ``` -animator.onrepeat(); +animator.onrepeat(); ``` 动画将重复。 diff --git a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md index b8ef5b4109be6a244d4ee04060b1b7d6472214dd..22ef7bafa7b997b600fc00721aa1a333c73cf8a2 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md +++ b/zh-cn/application-dev/reference/apis/js-apis-inputdevice.md @@ -102,7 +102,7 @@ getDevice(deviceId: number, callback: AsyncCallback<InputDeviceData>): voi ``` export default { - InputDeviceData { + InputDeviceData: { deviceId : 0, name : "NA", sources : Array, @@ -138,7 +138,7 @@ function getDevice(deviceId: number): Promise ``` export default { - InputDeviceData { + InputDeviceData: { deviceId : 0, name : "NA", sources : Array, diff --git a/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md b/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md index a841fba375872ce4efa70454182351f1eb630839..d58e37ee2fa7456d99bf2b3c0a4b8e7171f964f6 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md +++ b/zh-cn/application-dev/reference/apis/js-apis-mediaquery.md @@ -80,16 +80,18 @@ off(type: 'change', callback?: Callback<MediaQueryResult>): void - 示例 ``` - listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件 - onPortrait(mediaQueryResult) { - if (mediaQueryResult.matches) { - // do something here - } else { - // do something here - } - } - listener.on('change', onPortrait) // 注册回调 - listener.off('change', onPortrait) // 去注册回调 + import mediaquery from '@ohos.mediaquery' + + let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件 + function onPortrait(mediaQueryResult) { + if (mediaQueryResult.matches) { + // do something here + } else { + // do something here + } + } + this.listener.on('change', this.onPortrait) // 注册回调 + this.listener.off('change', this.onPortrait) // 去注册回调 ``` @@ -140,6 +142,4 @@ struct MediaQueryExample { .width('100%').height('100%') } } -``` - -![zh-cn_image_0000001174422920](figures/zh-cn_image_0000001174422920.gif) +``` \ No newline at end of file diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-app.md b/zh-cn/application-dev/reference/apis/js-apis-system-app.md index 85cd58a7311f9c95214cb7661442f95220c87723..51e89b3ca7d9d4fecb8011c2eb560d067c9e7108 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-system-app.md +++ b/zh-cn/application-dev/reference/apis/js-apis-system-app.md @@ -81,45 +81,95 @@ requestFullWindow(options?: RequestFullWindowOptions): void } ``` -## app.setImageCacheCount +## app.setImageCacheCount7+ setImageCacheCount(value: number): void -设置解码图像计数的图像缓存容量。如果未设置,应用程序将不会缓存任何解码图像。 +设置内存中缓存解码后图片的数量上限,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果超过缓存上限,会删除最久未再次加载的缓存。建议根据应用内存需求,设置合理缓存数量,数字过大可能导致内存使用过高。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| value | number | 否 | 解码图像计数的值容量。 | +| value | number | 否 | 内存中解码后图片的缓存数量。 | -## app.setImageRawDataCacheSize +**示例:** + + ``` + // app.ets + import app from '@system.app'; + + export default { + onCreate() { + app.setImageCacheCount(100) // 设置解码后图片内存缓存上限为100张 + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, + } + ``` + +## app.setImageRawDataCacheSize7+ setImageRawDataCacheSize(value: number): void -在解码前设置原始图像数据大小的图像缓存容量(以字节为单位)。如果未设置,应用程序将不会缓存任何原始图像数据。 +设置内存中缓存解码前图片数据的大小上限,单位为字节,提升再次加载同源图片的加载速度。如果不设置则默认为0,不进行缓存。缓存采用内置的LRU策略,新图片加载后,如果解码前数据超过缓存上限,会删除最久未再次加载的图片数据缓存。建议根据应用内存需求,设置合理缓存上限,过大可能导致应用内存使用过高。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| value | number | 否 | 原始图像数据大小的值容量(以字节为单位)。 | +| value | number | 否 | 内存中解码前图片数据的缓存大小,单位为字节。 | +**示例:** -## app.setImageFileCacheSize + ``` + // app.ets + import app from '@system.app'; + + export default { + onCreate() { + app.setImageRawDataCacheSize(104,857,600) // 设置解码前图片数据内存缓存上限为100MB + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, + } + ``` + +## app.setImageFileCacheSize7+ setImageFileCacheSize(value: number): void -在解码前设置磁盘上的图像文件缓存大小(以字节为单位)。如果未设置,应用程序将在磁盘上缓存100MB图像文件。 +设置图片文件缓存的大小上限,单位为字节,提升再次加载同源图片的加载速度,特别是对网络图源、缩略图会有较明显提升。如果不设置则默认为100MB。缓存采用内置的LRU策略,新图片加载后,如果超过文件缓存上限,会按照时间由远到近删除缓存图片文件直到缓存图片大小满足缓存上限。建议根据应用实际需求,设置合理文件缓存上限,数字过大可能导致磁盘空间占用过高。 **系统能力:** SystemCapability.ArkUI.ArkUI.Full **参数:** | 参数名 | 类型 | 必填 | 说明 | | -------- | -------- | -------- | -------- | -| value | number | 否 | 原始图像数据大小的值容量(以字节为单位)。 | +| value | number | 否 | 图片文件的缓存大小,单位为字节。 | + +**示例:** + + ``` + // app.ets + import app from '@system.app'; + + export default { + onCreate() { + app.setImageFileCacheSize(209,715,200) // 设置图片文件数据缓存上限为200MB + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, + } + ``` ## AppResponse diff --git a/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md b/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md index 78d6b4aaed60883daa60aeb7f9919a2dfb88b062..495ffd660c805171ebbae2bedb0e4d20bc303755 100644 --- a/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md +++ b/zh-cn/application-dev/reference/apis/js-apis-system-bluetooth.md @@ -48,7 +48,7 @@ ohos.permission.MANAGE_BLUETOOTH console.log('call bluetooth.startBLEScan success.'); }, fail(code, data) { - console.log('call bluetooth.startBLEScan failed, code: ${code}, data: ${data}.`); + console.log('call bluetooth.startBLEScan failed, code: ${code}, data: ${data}.'); }, complete() { console.log('call bluetooth.startBLEScan complete.'); @@ -82,7 +82,7 @@ ohos.permission.MANAGE_BLUETOOTH console.log('call bluetooth.stopBLEScan success.'); }, fail(data, code) { - console.log(`call bluethooth.stopBLEScan fail, code: ${code}, data: ${data}.`); + console.log('call bluethooth.stopBLEScan fail, code: ${code}, data: ${data}.'); }, complete() { console.log('call bluethooth.stopBLEScan complete.'); @@ -138,7 +138,7 @@ ohos.permission.MANAGE_BLUETOOTH }); }, fail(code, data) { - console.log('Failed to start BLE device scan, code: ${code}, data: ${data}`); + console.log('Failed to start BLE device scan, code: ${code}, data: ${data}'); } }); ``` diff --git a/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md b/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md index a08844709ea098941e4517758f4d762ce53db497..c86fd24d0039df64ce45978ba6882b586f1211d8 100644 --- a/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md +++ b/zh-cn/application-dev/reference/arkui-ts/ts-container-list.md @@ -119,5 +119,3 @@ struct ListExample { ``` ![zh-cn_image_0000001174264378](figures/zh-cn_image_0000001174264378.gif) - -◤otherprops:internal:◢ diff --git a/zh-cn/application-dev/ui/ts-application-resource-access.md b/zh-cn/application-dev/ui/ts-application-resource-access.md index 61bf3d3a3c0d8f6d6ce913deb80f6987ca78e03e..52a1ea68661d39635fbff12e40d70835a9566f74 100644 --- a/zh-cn/application-dev/ui/ts-application-resource-access.md +++ b/zh-cn/application-dev/ui/ts-application-resource-access.md @@ -24,9 +24,9 @@ ## 资源引用 -在工程中,通过**“$r('app.type.name')”**的形式引用应用资源。app代表是应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”,name代表资源命名,由开发者定义资源时确定。 +在工程中,通过"$r('app.type.name')"的形式引用应用资源。app代表是应用内resources目录中定义的资源;type代表资源类型(或资源的存放位置),可以取“color”、“float”、“string”、“plural”、“media”,name代表资源命名,由开发者定义资源时确定。 -引用rawfile下资源时使用**“$rawfile('filename')”**的形式**,**当前$rawfile仅支持Image控件引用图片资源,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。 +引用rawfile下资源时使用"$rawfile('filename')" 的形式,当前$rawfile仅支持Image控件引用图片资源,filename需要表示为rawfile目录下的文件相对路径,文件名需要包含后缀,路径开头不可以以"/"开头。 > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > 资源描述符不能拼接使用。 diff --git a/zh-cn/application-dev/ui/ts-framework-directory.md b/zh-cn/application-dev/ui/ts-framework-directory.md index de682dd3ba83260e7ea0f0d6b3e6662e98799640..5937d8d05fd64d45ae5ae9c614dd3ef10698000b 100644 --- a/zh-cn/application-dev/ui/ts-framework-directory.md +++ b/zh-cn/application-dev/ui/ts-framework-directory.md @@ -11,7 +11,7 @@ FA应用的eTS模块(entry/src/main)的典型开发目录结构如下: **目录结构中文件分类如下:** -- .ets结尾的eTS(extended TypeScript)文件,这个文件用于描述UI布局、样式、事件交互和页面逻辑。 +.ets结尾的eTS(extended TypeScript)文件,这个文件用于描述UI布局、样式、事件交互和页面逻辑。 **各个文件夹和文件的作用:** @@ -26,4 +26,6 @@ FA应用的eTS模块(entry/src/main)的典型开发目录结构如下: > ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:** > +> - 资源目录resources文件夹位于src/main下,此目录下资源文件的详细规范以及子目录结构规范参看[资源文件的分类](../quick-start/basic-resource-file-categories.md)。 +> > - 页面支持导入TypeScript和JavaScript文件。 diff --git a/zh-cn/application-dev/ui/ts-media-resource-type.md b/zh-cn/application-dev/ui/ts-media-resource-type.md index 62a375e434bdd737f4ba94c6386335531179a526..35e6cdae6737895b12cc450710b059a514623245 100644 --- a/zh-cn/application-dev/ui/ts-media-resource-type.md +++ b/zh-cn/application-dev/ui/ts-media-resource-type.md @@ -11,3 +11,13 @@ | SVG | .svg | | WEBP | .webp | | BMP | .bmp | + +- 开发框架支持的图片资源类型说明 + | 格式 | 支持的文件类型 | + | -------- | -------- | + | H.263 | .3gp
.mp4 | + | H.264 AVC
Baseline Profile (BP) | .3gp
.mp4 | + | MPEG-4 SP | .3gp | + | VP8 | .webm
.mkv | + + diff --git a/zh-cn/application-dev/ui/ts-types.md b/zh-cn/application-dev/ui/ts-types.md index 83a1d81fe294d9fd2bdf0509d3cb1291f8fa527a..af34e8176a77ac215c686fb29518b9ae33608adc 100644 --- a/zh-cn/application-dev/ui/ts-types.md +++ b/zh-cn/application-dev/ui/ts-types.md @@ -60,7 +60,7 @@ 资源引用类型,用于设置组件属性的值。 -可以通过$r或者$rawfile创建Resource类型对象,详见[资源访问](ts-media-resource-type.md)。 +可以通过$r或者$rawfile创建Resource类型对象,详见[资源访问](ts-application-resource-access.md)。 - $r('belonging.type.name') belonging:系统资源或者应用资源,相应的取值为'sys'和'app'; diff --git a/zh-cn/application-dev/ui/ui-js-overview.md b/zh-cn/application-dev/ui/ui-js-overview.md index 765c76abb0d0f94ddbf058e67c91309ee25b7630..29704277835fd6c06d5807e0da4cacfb07b19b7d 100755 --- a/zh-cn/application-dev/ui/ui-js-overview.md +++ b/zh-cn/application-dev/ui/ui-js-overview.md @@ -5,7 +5,6 @@ ## 基础能力 -- **类Web范式编程** 采用类HTML和CSS Web编程语言作为页面布局和页面样式的开发语言,页面业务逻辑则支持ECMAScript规范的JavaScript语言。方舟开发框架提供的类Web编程范式,可以让开发者避免编写UI状态切换的代码,视图配置信息更加直观。 diff --git a/zh-cn/application-dev/website.md b/zh-cn/application-dev/website.md index 3f9c8cd30bc1f0ad567f3e87a0656bc80740e863..5dbe4cfb9f57aca5c78d0022f4c4287263025fab 100644 --- a/zh-cn/application-dev/website.md +++ b/zh-cn/application-dev/website.md @@ -254,7 +254,7 @@ - [传感器开发概述](device/sensor-overview.md) - [传感器开发指导](device/sensor-guidelines.md) - 振动 - - [振动开发概述](device/vibrator-guidelines.md) + - [振动开发概述](device/vibrator-overview.md) - [振动开发指导](device/vibrator-guidelines.md) - 设备使用信息统计 - [设备使用信息统计概述](device-usage-statistics/device-usage-statistics-overview.md) diff --git a/zh-cn/application-dev/work-scheduler/work-scheduler-dev-guide.md b/zh-cn/application-dev/work-scheduler/work-scheduler-dev-guide.md index 4d72584bf0f4e08d169877942f8c5a1ef7ba386f..43cabe327ff8a1cf8280270ed96742ab65886874 100644 --- a/zh-cn/application-dev/work-scheduler/work-scheduler-dev-guide.md +++ b/zh-cn/application-dev/work-scheduler/work-scheduler-dev-guide.md @@ -1,184 +1,184 @@ -# 延迟任务调度开发指导 - -## 场景介绍 - -应用要执行对实时性要求不高的任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、热等统一决策调度时间。 - - -## 接口说明 -注册相关接口包导入: -```js -import workScheduler from '@ohos.workScheduler'; -``` - -回调相关接口包导入: -```js -import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; -``` - -### 延迟任务调度 - -**表1** workScheduler主要接口 - -接口名 | 接口描述 ----------------------------------------------------------|----------------------------------------- -function startWork(work: WorkInfo): boolean; | 延迟调度任务申请 -function stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 延迟调度任务取消 -function getWorkStatus(workId: number, callback: AsyncCallback): void;| 获取延迟调度任务状态(Callback形式) -function getWorkStatus(workId: number): Promise; | 获取延迟调度任务状态(Promise形式) -function obtainAllWorks(callback: AsyncCallback): Array;| 获取所有延迟调度任务(Callback形式) -function obtainAllWorks(): Promise>;| 获取所有延迟调度任务(Promise形式) -function stopAndClearWorks(): boolean;| 停止并清除任务 -function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean;| 获取上次任务是否超时(针对RepeatWork,Callback形式) -function isLastWorkTimeOut(workId: number): Promise;| 获取上次任务是否超时(针对RepeatWork,Promise形式) - -**表2** WorkInfo包含参数 - -接口名|描述|类型 ----------------------------------------------------------|-----------------------------------------|--------------------------------------------------------- -workId | 延迟任务Id(必填)|number -bundleName | 延迟任务包名(必填)|string -abilityName | 延迟任务回调通知的组件名(必填)|string -networkType | 网络条件 | NetworkType -isCharging | 是否充电 | bool -chargerType | 充电类型 | ChargingType -batteryLevel | 电量| number -batteryStatus| 电池状态| BatteryStatus -storageRequest|存储状态| StorageRequest -isRepeat|是否循环任务| boolean -repeatCycleTime |循环间隔| number -repeatCount |循环次数| number - -**表3** 延迟任务回调接口 - -接口名 | 接口描述 ----------------------------------------------------------|----------------------------------------- -function onWorkStart(work: WorkInfo): void; | 延迟调度任务开始回调 -function onWorkStop(work: WorkInfo): void; | 延迟调度任务结束回调 - -### 开发步骤 - -**开发对应的Extension** - - import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; - - export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { - onWorkStart(workInfo) { - console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo)); - } - onWorkStop(workInfo) { - console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo)); - } - } - - +# 延迟任务调度开发指导 + +## 场景介绍 + +应用要执行对实时性要求不高的任务的时候,比如设备空闲时候做一次数据学习等场景,可以使用延迟调度任务,该机制在满足应用设定条件的时候,会根据系统当前状态,如内存、功耗、热等统一决策调度时间。 + + +## 接口说明 +注册相关接口包导入: +```js +import workScheduler from '@ohos.workScheduler'; +``` + +回调相关接口包导入: +```js +import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; +``` + +### 延迟任务调度 + +**表1** workScheduler主要接口 + +接口名 | 接口描述 +---------------------------------------------------------|----------------------------------------- +function startWork(work: WorkInfo): boolean; | 延迟调度任务申请 +function stopWork(work: WorkInfo, needCancel?: boolean): boolean; | 延迟调度任务取消 +function getWorkStatus(workId: number, callback: AsyncCallback): void;| 获取延迟调度任务状态(Callback形式) +function getWorkStatus(workId: number): Promise; | 获取延迟调度任务状态(Promise形式) +function obtainAllWorks(callback: AsyncCallback): Array;| 获取所有延迟调度任务(Callback形式) +function obtainAllWorks(): Promise>;| 获取所有延迟调度任务(Promise形式) +function stopAndClearWorks(): boolean;| 停止并清除任务 +function isLastWorkTimeOut(workId: number, callback: AsyncCallback): boolean;| 获取上次任务是否超时(针对RepeatWork,Callback形式) +function isLastWorkTimeOut(workId: number): Promise;| 获取上次任务是否超时(针对RepeatWork,Promise形式) + +**表2** WorkInfo包含参数 + +接口名|描述|类型 +---------------------------------------------------------|-----------------------------------------|--------------------------------------------------------- +workId | 延迟任务Id(必填)|number +bundleName | 延迟任务包名(必填)|string +abilityName | 延迟任务回调通知的组件名(必填)|string +networkType | 网络类型 | NetworkType +isCharging | 是否充电 | boolean +chargerType | 充电类型 | ChargingType +batteryLevel | 电量| number +batteryStatus| 电池状态| BatteryStatus +storageRequest|存储状态| StorageRequest +isRepeat|是否循环任务| boolean +repeatCycleTime |循环间隔| number +repeatCount |循环次数| number + +**表3** 延迟任务回调接口 + +接口名 | 接口描述 +---------------------------------------------------------|----------------------------------------- +function onWorkStart(work: WorkInfo): void; | 延迟调度任务开始回调 +function onWorkStop(work: WorkInfo): void; | 延迟调度任务结束回调 + +### 开发步骤 + +**开发对应的Extension** + + import WorkSchedulerExtensionAbility from '@ohos.WorkSchedulerExtensionAbility'; + + export default class MyWorkSchedulerExtensionAbility extends WorkSchedulerExtensionAbility { + onWorkStart(workInfo) { + console.log('MyWorkSchedulerExtensionAbility onWorkStart' + JSON.stringify(workInfo)); + } + onWorkStop(workInfo) { + console.log('MyWorkSchedulerExtensionAbility onWorkStop' + JSON.stringify(workInfo)); + } + } + + **注册延迟任务** - - - - import workScheduler from '@ohos.workScheduler'; - - let workInfo = { - workId: 1, - batteryLevel:50, - batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, - isRepeat: false, - isPersisted: true, - bundleName: "com.example.myapplication", - abilityName: "MyExtension" - } - var res = workScheduler.startWork(workInfo); - console.info("workschedulerLog res:" + res); - - -**取消延迟任务** - - - import workScheduler from '@ohos.workScheduler'; - - let workInfo = { - workId: 1, - batteryLevel:50, - batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, - isRepeat: false, - isPersisted: true, - bundleName: "com.example.myapplication", - abilityName: "MyExtension" - } - var res = workScheduler.stopWork(workInfo, false); - console.info("workschedulerLog res:" + res); - - -**获取指定延迟任务** - -1.Callback写法 - - workScheduler.getWorkStatus(50, (err, res) => { - if (err) { - console.info('workschedulerLog getWorkStatus failed, because:' + err.data); - } else { - for (let item in res) { - console.info('workschedulerLog getWorkStatuscallback success,' + item + ' is:' + res[item]); - } - } - }); - - -2.Promise写法 - - workScheduler.getWorkStatus(50).then((res) => { - for (let item in res) { - console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]); - } - }).catch((err) => { - console.info('workschedulerLog getWorkStatus failed, because:' + err.data); - }) - - -**获取所有延迟任务** - -1.Callback写法 - - workScheduler.obtainAllWorks((err, res) =>{ - if (err) { - console.info('workschedulerLog obtainAllWorks failed, because:' + err.data); - } else { - console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res)); - } - }); - -2.Promise写法 - - workScheduler.obtainAllWorks().then((res) => { - console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res)); - }).catch((err) => { - console.info('workschedulerLog obtainAllWorks failed, because:' + err.data); - }) - -**停止并清除任务** - - let res = workScheduler.stopAndClearWorks(); - console.info("workschedulerLog res:" + res); - -**判断上次执行是否超时** - -1.Callback写法 - - workScheduler.isLastWorkTimeOut(500, (err, res) =>{ - if (err) { - console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.data); - } else { - console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res); - } - }); - -2.Promise写法 - - workScheduler.isLastWorkTimeOut(500) - .then(res => { - console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res); - }) - .catch(err => { - console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.data); - }); + + + + import workScheduler from '@ohos.workScheduler'; + + let workInfo = { + workId: 1, + batteryLevel:50, + batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, + isRepeat: false, + isPersisted: true, + bundleName: "com.example.myapplication", + abilityName: "MyExtension" + } + var res = workScheduler.startWork(workInfo); + console.info("workschedulerLog res:" + res); + + +**取消延迟任务** + + + import workScheduler from '@ohos.workScheduler'; + + let workInfo = { + workId: 1, + batteryLevel:50, + batteryStatus:workScheduler.BatteryStatus.BATTERY_STATUS_LOW, + isRepeat: false, + isPersisted: true, + bundleName: "com.example.myapplication", + abilityName: "MyExtension" + } + var res = workScheduler.stopWork(workInfo, false); + console.info("workschedulerLog res:" + res); + + +**获取指定延迟任务** + +1.Callback写法 + + workScheduler.getWorkStatus(50, (err, res) => { + if (err) { + console.info('workschedulerLog getWorkStatus failed, because:' + err.data); + } else { + for (let item in res) { + console.info('workschedulerLog getWorkStatuscallback success,' + item + ' is:' + res[item]); + } + } + }); + + +2.Promise写法 + + workScheduler.getWorkStatus(50).then((res) => { + for (let item in res) { + console.info('workschedulerLog getWorkStatus success,' + item + ' is:' + res[item]); + } + }).catch((err) => { + console.info('workschedulerLog getWorkStatus failed, because:' + err.data); + }) + + +**获取所有延迟任务** + +1.Callback写法 + + workScheduler.obtainAllWorks((err, res) =>{ + if (err) { + console.info('workschedulerLog obtainAllWorks failed, because:' + err.data); + } else { + console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res)); + } + }); + +2.Promise写法 + + workScheduler.obtainAllWorks().then((res) => { + console.info('workschedulerLog obtainAllWorks success, data is:' + JSON.stringify(res)); + }).catch((err) => { + console.info('workschedulerLog obtainAllWorks failed, because:' + err.data); + }) + +**停止并清除任务** + + let res = workScheduler.stopAndClearWorks(); + console.info("workschedulerLog res:" + res); + +**判断上次执行是否超时** + +1.Callback写法 + + workScheduler.isLastWorkTimeOut(500, (err, res) =>{ + if (err) { + console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.data); + } else { + console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res); + } + }); + +2.Promise写法 + + workScheduler.isLastWorkTimeOut(500) + .then(res => { + console.info('workschedulerLog isLastWorkTimeOut success, data is:' + res); + }) + .catch(err => { + console.info('workschedulerLog isLastWorkTimeOut failed, because:' + err.data); + }); }) \ No newline at end of file