1# ServiceExtensionAbility 2 3>  **说明:** 4> 5> 本模块首批接口从API version 9开始支持。API 9当前为Canary版本,仅供使用,不保证接口可稳定调用。 6 7 8提供ServiceExtension服务扩展相关接口。 9 10 11## 导入模块 12 13``` 14import ServiceExtension from '@ohos.application.ServiceExtensionAbility'; 15``` 16 17 18## 权限 19 20无 21 22 23## 属性 24 25**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 26 27| 名称 | 参数类型 | 可读 | 可写 | 说明 | 28| -------- | -------- | -------- | -------- | -------- | 29| context | [ServiceExtensionContext](js-apis-service-extension-context.md) | 是 | 否 | ServiceExtension的上下文环境,继承自ExtensionContext。 | 30 31 32## ServiceExtensionAbility.onCreate 33 34onCreate(want: Want): void; 35 36Extension生命周期回调,在创建时回调,执行初始化业务逻辑操作。 37 38**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 39 40**参数:** 41 42 | 参数名 | 类型 | 必填 | 说明 | 43 | -------- | -------- | -------- | -------- | 44 | want | [Want](js-apis-featureAbility.md#Want) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 45 46**示例:** 47 48 ```js 49 class ServiceExt extends ServiceExtension { 50 onCreate(want) { 51 console.log('onCreate, want:' + want.abilityName); 52 } 53 } 54 ``` 55 56 57## ServiceExtensionAbility.onDestroy 58 59onDestroy(): void; 60 61Extension生命周期回调,在销毁时回调,执行资源清理等操作。 62 63**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 64 65**示例:** 66 67 ```js 68 class ServiceExt extends ServiceExtension { 69 onDestroy() { 70 console.log('onDestroy'); 71 } 72 } 73 ``` 74 75 76## ServiceExtensionAbility.onRequest 77 78onRequest(want: Want, startId: number): void; 79 80Extension生命周期回调,如果是startAbility拉起的服务,会在onCreate之后回调。每次拉起服务都会回调,startId会递增。 81 82**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 83 84**参数:** 85 86 | 参数名 | 类型 | 必填 | 说明 | 87 | -------- | -------- | -------- | -------- | 88 | want | [Want](js-apis-featureAbility.md#Want) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 89 | startId | number | 是 | 返回拉起次数。首次拉起初始值返回1,多次之后自动递增。 | 90 91**示例:** 92 93 ```js 94 class ServiceExt extends ServiceExtension { 95 onRequest(want, startId) { 96 console.log('onRequest, want:' + want.abilityName); 97 } 98 } 99 ``` 100 101 102## ServiceExtensionAbility.onConnect 103 104onConnect(want: Want): rpc.RemoteObject; 105 106Extension生命周期回调,如果是connectAbility拉起的服务,会在onCreate之后回调。返回一个RemoteObject对象,用于和客户端进行通信。 107 108**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 109 110**参数:** 111 112 | 参数名 | 类型 | 必填 | 说明 | 113 | -------- | -------- | -------- | -------- | 114 | want | [Want](js-apis-featureAbility.md#Want)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 115 116**返回值:** 117 118 | 类型 | 说明 | 119 | -------- | -------- | 120 | rpc.RemoteObject | 一个RemoteObject对象,用于和客户端进行通信。 | 121 122**示例:** 123 124 ```js 125 import rpc from '@ohos.rpc' 126 class StubTest extends rpc.RemoteObject{ 127 constructor(des) { 128 super(des); 129 } 130 onRemoteRequest(code, data, reply, option) { 131 } 132 } 133 class ServiceExt extends ServiceExtension { 134 onConnect(want) { 135 console.log('onConnect , want:' + want.abilityName); 136 return new StubTest("test"); 137 } 138 } 139 ``` 140 141 142## ServiceExtensionAbility.onDisconnect 143 144onDisconnect(want: Want): void; 145 146Extension的生命周期,断开服务连接时回调。 147 148**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 149 150**参数:** 151 152 | 参数名 | 类型 | 必填 | 说明 | 153 | -------- | -------- | -------- | -------- | 154 | want |[Want](js-apis-featureAbility.md#Want)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 155 156**示例:** 157 158 ```js 159 class ServiceExt extends ServiceExtension { 160 onDisconnect(want) { 161 console.log('onDisconnect, want:' + want.abilityName); 162 } 163 } 164 ``` 165 166 167## ServiceExtensionAbility.onReconnect 168 169onReconnect(want: Want): void; 170 171Extension的生命周期,重连服务连接时回调。 172 173**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 174 175**参数:** 176 177 | 参数名 | 类型 | 必填 | 说明 | 178 | -------- | -------- | -------- | -------- | 179 | want |[Want](js-apis-featureAbility.md#Want)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 180 181**示例:** 182 183```js 184class ServiceExt extends ServiceExtension { 185 onReconnect(want) { 186 console.log('onReconnect, want:' + want.abilityName); 187 } 188} 189``` 190 191## ServiceExtensionAbility.onConfigurationUpdated 192 193onConfigurationUpdated(config: Configuration): void; 194 195更新系统配置时的回调。 196 197**系统能力**:SystemCapability.Ability.AbilityRuntime.Core 198 199**参数:** 200 201 | 参数名 | 类型 | 必填 | 说明 | 202 | -------- | -------- | -------- | -------- | 203 | config | Configuration | 是 | 更新的配置。 | 204 205**示例:** 206 207```js 208class ServiceExt extends ServiceExtension { 209 onConfigurationUpdated(config) { 210 console.log('onConfigurationUpdated, config:' + config); 211 } 212} 213``` 214