概述
ServiceAbility,即"基于Service模板的Ability",主要用于后台运行任务(如执行音乐播放、文件下载等),不提供用户交互界面。ServiceAbility可由其他应用或PageAbility启动,即使用户切换到其他应用,ServiceAbility仍将在后台继续运行。
ServiceAbility组件配置
与PageAbility类似,ServiceAbility的相关配置在config.json配置文件的"module"对象的"abilities"对象中,与PageAbility的区别在于"type"属性及"backgroundModes"属性。
表1 ServiceAbility部分配置项说明
| 属性名称 | 含义 | 数据类型 | 是否可缺省 | ||
|---|---|---|---|---|---|
| type | 表示Ability的类型。取值为"service"时表示该Ability是基于Service模板开发的Ability。 | 字符串 | 否 | ||
| backgroundModes | 表示后台服务的类型,可以为一个服务配置多个后台服务类型。该标签仅适用于service类型的Ability。取值范围如下: |
|
|
ServiceAbility支持的配置项及详细说明详见 module对象内部结构 。
ServiceAbility的生命周期
开发者可以根据业务场景实现service.js/service.ets中的生命周期相关接口。ServiceAbility生命周期接口说明见下表。
表1 ServiceAbility生命周期接口说明
| 接口名 | 描述 |
|---|---|
| onStart(): void | 该方法在创建ServiceAbility的时候调用,用于Service的初始化,在ServiceAbility的整个生命周期只会调用一次。 |
| onCommand(want: Want, startId: number): void | 在Service创建完成之后调用,该方法在客户端每次启动该Service时都会调用,开发者可以在该方法中做一些调用统计、初始化类的操作。 |
| onConnect(want: Want): rpc.RemoteObject | 在连接ServiceAbility时调用。 |
| onDisconnect(want: Want): void | 在与已连接的ServiceAbility断开连接时调用。 |
| onStop(): voi |

最低0.47元/天 解锁文章
1116

被折叠的 条评论
为什么被折叠?



