• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# ServiceExtensionAbility
2
3> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
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
2021
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