Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
7f1fae4c
D
Docs
项目概览
OpenHarmony
/
Docs
大约 1 年 前同步成功
通知
159
Star
292
Fork
28
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
D
Docs
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7f1fae4c
编写于
4月 24, 2022
作者:
Z
zhangxin_T
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
modify api guide
Signed-off-by:
N
zhangxin_T
<
zhangxin312@huawei.com
>
上级
f1bbeba9
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
43 addition
and
5 deletion
+43
-5
zh-cn/application-dev/background-task-management/background-task-dev-guide.md
...v/background-task-management/background-task-dev-guide.md
+43
-5
未找到文件。
zh-cn/application-dev/background-task-management/background-task-dev-guide.md
浏览文件 @
7f1fae4c
...
...
@@ -113,10 +113,11 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
| VOIP | 8 | 音视频通话(系统保留) | voip |
| TASK_KEEPING | 9 | 计算任务(仅供特定设备使用) | taskKeeping |
具体的api信息详见
[
接口使用指南
](
../reference/apis/js-apis-backgroundTaskManager.md
)
### 开发步骤
1.
在
config.json文件中配置长时任务权限、后台模式类型,其中ability类型为service。
1.
在
DevEco Studio IDE中,新建api8的工程后,工程目录中右键选择“new” -> “Ability” -> “Service Ability” 快速创建service ability组件。并在config.json文件中配置长时任务权限、后台模式类型,其中ability类型为service
```json
"module": {
...
...
@@ -146,14 +147,18 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
import wantAgent from '@ohos.wantAgent';
let wantAgentInfo = {
// 点击通知后,将要执行的动作列表
wants: [
{
bundleName: "com.example.myapplication",
abilityName: "com.example.myapplication.MainAbility"
}
],
// 点击通知后,动作类型
operationType: wantAgent.OperationType.START_ABILITY,
// 使用者自定义的一个私有值
requestCode: 0,
// 点击通知后,动作执行属性
wantAgentFlags: [wantAgent.WantAgentFlags.UPDATE_PRESENT_FLAG]
};
...
...
@@ -183,14 +188,17 @@ ohos.permission.KEEP_BACKGROUND_RUNNING
```
### 开发实例
基于FA的service ability使用,参考
[
ServiceAbility开发指导
](
../ability/fa-serviceability.md
)
。
当服务启动后,在serviceAbility的onStart回调方法中,调用长时任务的申请接口,声明此服务需要在后台长时运行。在onStop回调方法里,调用长时任务取消接口,声明取消长时任务。
在service.js文件中:
当不需要与后台执行的长时任务交互时,可以采用startAbility()方法启动服务ability。并在serviceAbility的onStart回调方法中,调用长时任务的申请接口,声明此服务需要在后台长时运行。当任务执行完,再调用长时任务取消接口,及时释放资源。
当需要与后台执行的长时任务交互时(如播放音乐等)。可以采用connectAbility()方法启动并连接服务ability。在获取到服务的代理对象后,与服务进行通信,控制长时任务的申请和取消。
```
js
import
backgroundTaskManager
from
'
@ohos.backgroundTaskManager
'
;
import
featureAbility
from
'
@ohos.ability.featureAbility
'
;
import
wantAgent
from
'
@ohos.wantAgent
'
;
import
rpc
from
"
@ohos.rpc
"
;
function
startBackgroundRunning
()
{
let
wantAgentInfo
=
{
...
...
@@ -224,18 +232,48 @@ function stopBackgroundRunning() {
});
}
let
mMyStub
;
class
MyStub
extends
rpc
.
RemoteObject
{
constructor
(
des
)
{
if
(
typeof
des
===
'
string
'
)
{
super
(
des
);
}
else
{
return
null
;
}
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
console
.
log
(
'
ServiceAbility onRemoteRequest called
'
);
// code 的具体含义用户自定义
if
(
code
===
1
)
{
// 接收到申请长时任务的请求码
startContinuousTask
();
// 此处执行具体长时任务
}
else
if
(
code
===
2
)
{
// 接收到取消长时任务的请求码
stopContinuousTask
();
}
else
{
console
.
log
(
'
ServiceAbility unknown request code
'
);
}
return
true
;
}
}
export
default
{
onStart
(
want
)
{
console
.
info
(
'
ServiceAbility onStart
'
);
mMyStub
=
new
MyStub
(
"
ServiceAbility-test
"
);
startBackgroundRunning
();
// 此处执行后台具体的长时任务。
// 任务处理完取消长时任务。
stopBackgroundRunning
()
},
onStop
()
{
console
.
info
(
'
ServiceAbility onStop
'
);
stopBackgroundRunning
();
},
onConnect
(
want
)
{
console
.
info
(
'
ServiceAbility onConnect
'
);
return
{}
;
return
mMyStub
;
},
onReconnect
(
want
)
{
console
.
info
(
'
ServiceAbility onReconnect
'
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录