Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenHarmony
Docs
提交
416c7e32
D
Docs
项目概览
OpenHarmony
/
Docs
大约 2 年 前同步成功
通知
161
Star
293
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看板
未验证
提交
416c7e32
编写于
3月 23, 2022
作者:
O
openharmony_ci
提交者:
Gitee
3月 23, 2022
浏览文件
操作
浏览文件
下载
差异文件
!2325 添加serviceExtensionAbility文档
Merge pull request !2325 from 刘宝/master
上级
a2541b6e
4ec527b0
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
97 addition
and
1 deletion
+97
-1
zh-cn/application-dev/ability/stage-serviceextension.md
zh-cn/application-dev/ability/stage-serviceextension.md
+97
-1
未找到文件。
zh-cn/application-dev/ability/stage-serviceextension.md
浏览文件 @
416c7e32
# ServiceExtensionAbility开发指导
# ServiceExtensionAbility开发指导
\ No newline at end of file
## 基本概念
ExtensionAbility,是Stage模型中新增的扩展组件的基类,一般用于处理无界面的任务,生命周期较简单,没有前后台生命周期。ServiceExtensionAbility是ExtensionAbility的扩展类。
开发者可以自定义类继承ServiceExtensionAbility,通过重写基类中相关生命周期方法,来做初始化、连接中、断开连接时相关业务逻辑操作。
ServiceExtensionAbility中相关生命周期说明如下:
-
onCreate()
首次调用startAbility、connectAbility时触发,开发者可以进行初始化操作。
-
onRequest()
每次调用startAbility都会触发,首次调用时startId为1,重复调用startAbility递增。
-
onConnect()
调用connectAbility触发,重复调用不会再次触发,除非调用disconnectAbility解除绑定后再调用;onConnect返回一个进程通信类RemoteObject。
-
onDisconnect()
调用disconnectAbility触发,Extension如果是用connectAbility拉起的,并且已经没有其他应用绑定这个Extension,则会触发onDestroy生命周期销毁组件。
-
onDestroy()
调用停止当前ability接口terminateSelf会触发。
## 约束与限制
-
ServiceExtensionAbility使用和拉起都必须要有系统权限,鸿蒙系统当前不支持三方应用创建、使用和拉起后台应用功能。
## 启动ServiceExtensionAbility
1.
创建ServiceExtensionAbility
开发者在创建TS文件中自定义类继承ServiceExtensionAbility,重写基类回调函数,示例如下:
```
js
import
rpc
from
'
@ohos.rpc
'
class
StubTest
extends
rpc
.
RemoteObject
{
constructor
(
des
)
{
super
(
des
);
}
onRemoteRequest
(
code
,
data
,
reply
,
option
)
{
}
}
class
ServiceExt
extends
ServiceExtensionAbility
{
onCreate
(
want
)
{
console
.
log
(
'
onCreate, want:
'
+
want
.
abilityName
);
}
onRequest
(
want
,
startId
)
{
console
.
log
(
'
onRequest, want:
'
+
want
.
abilityName
);
}
onConnect
(
want
)
{
console
.
log
(
'
onConnect , want:
'
+
want
.
abilityName
);
return
new
StubTest
(
"
test
"
);
}
onDisconnect
(
want
)
{
console
.
log
(
'
onDisconnect, want:
'
+
want
.
abilityName
);
}
onDestroy
()
{
console
.
log
(
'
onDestroy
'
);
}
}
```
2.
注册ServiceExtensionAbility
需要在应用配置文件module.json中进行注册,注册类型type需要设置为service。
**config.json配置样例**
```
json
"extensionAbilities"
:[{
"name"
:
"ServiceExtAbility"
,
"icon"
:
"$media:icon"
,
"description"
:
"service"
,
"type"
:
"service"
,
"visible"
:
true
,
"srcEntrance"
:
"./ets/ServiceExtAbility/ServiceExtAbility.ts"
}]
```
## 开发实例
针对ServiceExtensionAbility开发,有以下示例工程可供参考:
-
[
ServiceExtensionAbility
](
)
本示例ServiceExtensionAbility中:
在ServiceExtensionAbility目录中的ServiceExtAbility.ts文件创建一个ServiceExtensionAbility实例。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录