AppServiceExtensionAbility简介
介绍
使用AppServiceExtensionAbility组件实现后台服务 从 API version 20 开始支持的组件,旨在为应用程序提供后台服务。其它应用可以通过启动或连接该组件获取相应服务,界面的长期运行任务(例如数据监控、文件操作监听等)。
效果预览
不涉及。
使用说明
- 应用在启动后展示首页,首页展示相关按钮,点击进入相应功能界面。
- 点击对应按钮触发相关回调,并打印相关信息
- 示例将被启动或被连接的AppServiceExtensionAbility组件称为服务端,将启动或连接AppServiceExtensionAbility组件的应用组件(当前仅支持UIAbility)称为客户端。
工程目录
entry/src/
├── main
│ ├── ets
│ │ ├── entryability
│ │ ├── entrybackupability
│ │ ├── myappserviceextability
│ │ ├── MyAppServiceExtAbility.ets
│ │ ├── myappserviceextabilityfour
│ │ ├── MyAppServiceExtAbility.ets
│ │ ├── myappserviceextabilitythree
│ │ ├── MyAppServiceExtAbility.ets
│ │ ├── myappserviceextabilitytwo
│ │ ├── MyAppServiceExtAbility.ets
│ │ ├── pages
│ │ ├── ClientServerExt.ets // 客户端与服务端通信
│ │ ├── ConnectAppServiceExt.ets // 连接一个后台服务
│ │ ├── DisConnectAppServiceExt.ets // 使用disconnectAppServiceExtensionAbility()断开与后台服务的连接
│ │ ├── Index.ets // 首页
│ │ ├── StartAppServiceExt.ets // 启动一个后台服务
│ │ ├── StopAppServiceExt.ets // 停止一个已启动的AppServiceExtensionAbility组件
│ ├── module.json5
│ └── resources
├── ohosTest
│ ├── ets
│ │ ├── test
│ │ ├── Ability.test.ets // 自动化测试代码
具体实现
- 在MyAppServiceExtAbility目录,右键选择“New > ArkTS File”,新建一个文件并命名为MyAppServiceExtAbility.ets。
- 在应用中启动一个新的AppServiceExtensionAbility组件。
- 在应用中停止一个已启动的AppServiceExtensionAbility组件。
- 已启动的AppServiceExtensionAbility组件停止自身。
- 使用connectAppServiceExtensionAbility()建立与后台服务的连接。
- 使用disconnectAppServiceExtensionAbility()断开与后台服务的连接。
- 客户端在onConnect()中获取到rpc.IRemoteObject对象后便可与服务端进行通信。
相关权限
应用集成AppServiceExtensionAbility组件需要申请ACL权限(ohos.permission.SUPPORT_APP_SERVICE_EXTENSION)。该ACL权限当前只对企业普通应用开放申请。
依赖
不涉及。
约束与限制
1.本示例AppServiceExtensionAbility组件当前仅支持2in1设备。
2.本示例为Stage模型,支持API20版本SDK,版本号:6.0.0.40,镜像版本号:OpenHarmony_6.0.0.40。
3.本示例需要使用DevEco Studio 6.0.0 Release (Build Version: 6.0.0.858, built on September 24, 2025)及以上版本才可编译运行。
下载
如需单独下载本工程,执行如下命令:
git init
git config core.sparsecheckout true
echo code/DocsSample/Ability/AppServiceExtensionAbility > .git/info/sparse-checkout
git remote add origin https://gitcode.com/openharmony/applications_app_samples.git
git pull origin master