提交 365ce9e7 编写于 作者: Z zhangxin_T

bugfix

Signed-off-by: Nzhangxin_T <zhangxin312@huawei.com>
上级 ba6947ca
master E0523 OpenHarmony-3.1-API8-SDK-Public OpenHarmony-3.1-API9-SDK-Canary OpenHarmony-3.1-Release OpenHarmony-3.2-Beta1 OpenHarmony-3.2-Beta2 OpenHarmony-3.2-Beta3 OpenHarmony-3.2-Beta4 OpenHarmony-3.2-Beta5 OpenHarmony-3.2-Release OpenHarmony-4.0-Beta1 OpenHarmony-4.0-Beta2 OpenHarmony_filemanager_develop_20220505 OpenHarmony_filemanager_develop_20220614 TR4270 bak_OpenHarmony-4.0-Beta1_20230529 docs-modify feature_IDL_20220811 master_0308_1 monthly_20220614 monthly_20220816 monthly_20221018 monthly_20230815 revert-merge-17651-master revert-merge-19334-OpenHarmony-4.0-Beta1 revert-merge-19586-master revert-merge-20613-master revert-merge-2140-master revert-merge-21757-OpenHarmony-4.0-Beta2 revert-merge-21765-OpenHarmony-4.0-Beta2 revert-merge-23766-master revert-merge-5580-master update_master_0323 weekly_20220215 weekly_20220222 weekly_20220301 weekly_20220406 weekly_20220412 weekly_20220419 weekly_20220426 weekly_20220503 weekly_20220510 weekly_20220524 weekly_20220531 weekly_20220607 weekly_20220614 weekly_20220621 weekly_20220628 weekly_20220705 weekly_20220712 weekly_20220719 weekly_20220726 weekly_20220802 weekly_20220809 weekly_20220816 weekly_20220823 weekly_20220830 weekly_20220906 weekly_20220913 weekly_20220920 weekly_20220927 weekly_20221004 weekly_20221011 weekly_20221018 weekly_20221025 weekly_20221101 weekly_20221108 weekly_20221115 weekly_20221122 weekly_20221129 weekly_20221206 weekly_20221213 weekly_20221220 weekly_20221227 weekly_20230103 weekly_20230110 weekly_20230117 weekly_20230124 weekly_20230131 weekly_20230207 weekly_20230214 weekly_20230221 weekly_20230228 weekly_20230307 weekly_20230314 weekly_20230321 weekly_20230328 weekly_20230404 weekly_20230411 weekly_20230418 weekly_20230425 weekly_20230502 weekly_20230509 weekly_20230516 weekly_20230523 weekly_20230530 weekly_20230606 weekly_20230613 weekly_20230619 weekly_20230626 weekly_20230627 weekly_20230704 weekly_20230712 weekly_20230725 weekly_20230801 weekly_20230808 weekly_20230815 weekly_20230822 weekly_20230829 weekly_20230905 OpenHarmony-v4.0-Beta2 OpenHarmony-v4.0-Beta1 OpenHarmony-v3.2.3-Release OpenHarmony-v3.2.2-Release OpenHarmony-v3.2.1-Release OpenHarmony-v3.2-Release OpenHarmony-v3.2-Beta5 OpenHarmony-v3.2-Beta4 OpenHarmony-v3.2-Beta3 OpenHarmony-v3.2-Beta2 OpenHarmony-v3.2-Beta1 OpenHarmony-v3.1.7-Release OpenHarmony-v3.1.6-Release OpenHarmony-v3.1.5-Release OpenHarmony-v3.1.4-Release OpenHarmony-v3.1.3-Release OpenHarmony-v3.1.2-Release OpenHarmony-v3.1.1-Release OpenHarmony-v3.1-Release
无相关合并请求
......@@ -33,6 +33,7 @@ import backgroundTaskManager from '@ohos.backgroundTaskManager';
1. 申请延迟挂起
```js
import backgroundTaskManager from '@ohos.backgroundTaskManager';
......@@ -46,6 +47,7 @@ var id = delayInfo.requestId;console.info("requestId is: " + id);
2. 获取进入挂起前的剩余时间
```js
backgroundTaskManager.getRemainingDelayTime(id).then( res => {
console.log('promise => Operation succeeded. Data: ' + JSON.stringify(res));
......@@ -56,6 +58,7 @@ backgroundTaskManager.getRemainingDelayTime(id).then( res => {
3. 取消延迟挂起
```js
backgroundTaskManager.cancelSuspendDelay(id);
```
......@@ -102,7 +105,8 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
| function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent, callback: AsyncCallback&lt;void&gt;): void;<br/>function startBackgroundRunning(context: Context, bgMode: BackgroundMode, wantAgent: WantAgent): Promise&lt;void&gt;; | 服务启动后,向系统申请长时任务,使服务一直保持后台运行 |
| function stopBackgroundRunning(context: Context, callback: AsyncCallback&lt;void&gt;): void;<br/>function stopBackgroundRunning(context: Context): Promise&lt;void&gt;; | 停止后台长时任务的运行 |
**表4** 长时任务BackgroundMode参数
**表4** 后台模式类型
| 参数名 | id值 | 描述 |
| -------- | -------- | -------- |
| DATA_TRANSFER | 1 | 数据传输 |
......@@ -118,6 +122,36 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
## 开发步骤
1. 在config.json文件中配置后台模式参数和权限
```json
"abilities": [
{
"visible": true,
"backgroundModes": [
"dataTransfer",
"audioPlayback"
],
"srcPath": "Service",
"name": ".Service",
"icon": "$media:icon",
"srcLanguage": "js",
"description": "$string:description_service",
"type": "service"
},
],
"defPermissions": [
{
"name": "ohos.permission.KEEP_BACKGROUND_RUNNING"
}
],
"reqPermissions": [
{
"name": "ohos.permission.KEEP_BACKGROUND_RUNNING"
}
]
```
1. 申请长时任务
```js
......@@ -137,6 +171,7 @@ let wantAgentInfo = {
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESET_FLAG]
};
// 通过wantAgent模块的getWantAgent方法获取WantAgent对象
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => {
......@@ -184,7 +219,7 @@ function startBackgroundRunning() {
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESET_FLAG]
};
// 通过getWantAgent方法获取WantAgent对象
// 通过wantAgent模块的getWantAgent方法获取WantAgent对象
wantAgent.getWantAgent(wantAgentInfo).then((wantAgentObj) => {
backgroundTaskManager.startBackgroundRunning(featureAbility.getContext(),
backgroundTaskManager.BackgroundMode.DATA_TRANSFER, wantAgentObj).then(() => {
......
......@@ -35,7 +35,7 @@
- **配额机制**:为了防止应用滥用保活,或者申请后不取消,每个应用每天都会有一定配额(会根据用户的使用习惯动态调整),配额消耗完就不再允许申请短时任务,所以应用完成短时任务后立刻取消延时申请,避免消耗配额。(注,这个配额指的是申请的时长,系统默认应用在后台运行的时间不计算在内)。
## 长时任务
长时任务类型给用户能直观感受到的且需要一直在后台运行的业务提供后台运行声明周期的保障。比如,业务需要在后台播放声音,或者需要在后台持续导航定位等。此类用户可以感知到的后台业务行为,可以通过使用长时任务对应的后台模式保障业务在后台的运行,支撑应用完成在后台的业务。
长时任务给用户能够直观感受到的且需要一直在后台运行的业务提供后台运行生命周期的保障。比如:业务需要在后台播放声音、需要在后台持续导航定位等。此类用户可以直观感知到的后台业务行为,可以通过使用长时任务对应的后台模式保障业务在后台的运行,支撑应用完成在后台的业务。
### 后台模式分类
OpenHarmony提供了九种后台模式,供需要在后台做长时任务的业务使用,具体的后台模式类型如下:
......@@ -44,15 +44,15 @@ OpenHarmony提供了九种后台模式,供需要在后台做长时任务的业
| BackgroundMode | 说明 | 通知栏显示提示 | 备注 |
| -------- | -------- | -------- | -------- |
| dataTransfer | 通过网络/对端设备进行数据下载、备份、分享、传输等业务 | 正在运行数据传输任务 | |
| audioPlayback | 音频输出业务 | 正在运行音频播放任务 | |
| audioRecording | 音频输入业务 | 正在运行录音任务 | |
| dataTransfer | 通过网络/对端设备进行数据下载、备份、分享、传输等 | 正在运行数据传输任务 | |
| audioPlayback | 音频输出 | 正在运行音频播放任务 | |
| audioRecording | 音频输入 | 正在运行录音任务 | |
| location | 定位、导航 | 正在运行定位任务 | |
| bluetoothInteraction | 蓝牙传输业务 | 正在运行蓝牙相关任务 | |
| bluetoothInteraction | 蓝牙传输 | 正在运行蓝牙相关任务 | |
| multiDeviceConnection | 分布式互联任务 | 正在运行分布式任务 | |
| wifiInteraction | WLAN传输业务 | 正在运行WLAN相关任务 | SystemApi,仅对System权限应用开放 |
| voip | 音视频电话、VOIP业务 | 正在运行通话相关任务 | SystemApi,仅对System权限应用开放 |
| taskKeeping | 计算务 | 正在运行计算任务 | PC特有,仅在PC申请生效 |
| wifiInteraction | WLAN传输 | 正在运行WLAN相关任务 | SystemApi,仅对System权限应用开放 |
| voip | 音视频电话、VOIP | 正在运行通话相关任务 | SystemApi,仅对System权限应用开放 |
| taskKeeping | 计算务 | 正在运行计算任务 | PC特有,仅在PC申请生效 |
### 长时任务使用约束
- 如果用户选择可感知业务(如播音、导航、上传下载等),触发对应后台模式,在任务启动时,系统会强制弹出通知提醒用户。
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册
反馈
建议
客服 返回
顶部