js-apis-app-ability-serviceExtensionAbility.md 7.3 KB
Newer Older
1
# @ohos.app.ability.ServiceExtensionAbility (ServiceExtensionAbility)
W
wusongqing 已提交
2

3
The **ServiceExtensionAbility** module provides lifecycle callbacks when a ServiceExtensionAbility (background service) is created, destroyed, connected, or disconnected.
4

W
wusongqing 已提交
5 6
> **NOTE**
> 
7
> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version. 
W
wusongqing 已提交
8
> The APIs of this module can be used only in the stage model.
W
wusongqing 已提交
9

W
wusongqing 已提交
10
## Modules to Import
W
wusongqing 已提交
11

12 13
```ts
import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility';
W
wusongqing 已提交
14 15
```

W
wusongqing 已提交
16
## Required Permissions
W
wusongqing 已提交
17

W
wusongqing 已提交
18
None.
W
wusongqing 已提交
19

W
wusongqing 已提交
20
## Attributes
W
wusongqing 已提交
21

W
wusongqing 已提交
22 23
**System capability**: SystemCapability.Ability.AbilityRuntime.Core

24 25
**System API**: This is a system API and cannot be called by third-party applications.

26
| Name| Type| Readable| Writable| Description|
W
wusongqing 已提交
27
| -------- | -------- | -------- | -------- | -------- |
28
| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)  | Yes| No| ServiceExtensionContext, which is inherited from **ExtensionContext**.|
W
wusongqing 已提交
29 30


W
wusongqing 已提交
31
## ServiceExtensionAbility.onCreate
W
wusongqing 已提交
32 33 34

onCreate(want: Want): void;

35
Called when a ServiceExtensionAbility is created to initialize the service logic.
W
wusongqing 已提交
36

W
wusongqing 已提交
37
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
W
wusongqing 已提交
38

39 40
**System API**: This is a system API and cannot be called by third-party applications.

W
wusongqing 已提交
41
**Parameters**
W
wusongqing 已提交
42

43 44 45
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md) | Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.|
W
wusongqing 已提交
46

W
wusongqing 已提交
47 48
**Example**

49
  ```ts
W
wusongqing 已提交
50 51
  class ServiceExt extends ServiceExtension {
    onCreate(want) {
52
      console.log('onCreate, want: ${want.abilityName}');
W
wusongqing 已提交
53
    }
W
wusongqing 已提交
54 55 56 57
  }
  ```


W
wusongqing 已提交
58
## ServiceExtensionAbility.onDestroy
W
wusongqing 已提交
59 60 61

onDestroy(): void;

62
Called when this ServiceExtensionAbility is destroyed to clear resources.
W
wusongqing 已提交
63

W
wusongqing 已提交
64
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
W
wusongqing 已提交
65

66 67
**System API**: This is a system API and cannot be called by third-party applications.

W
wusongqing 已提交
68
**Example**
W
wusongqing 已提交
69

70
  ```ts
W
wusongqing 已提交
71 72
  class ServiceExt extends ServiceExtension {
    onDestroy() {
W
wusongqing 已提交
73
      console.log('onDestroy');
W
wusongqing 已提交
74
    }
W
wusongqing 已提交
75 76 77 78
  }
  ```


W
wusongqing 已提交
79
## ServiceExtensionAbility.onRequest
W
wusongqing 已提交
80 81 82

onRequest(want: Want, startId: number): void;

83
Called following **onCreate()** when a ServiceExtensionAbility is started by calling **startAbility()** or **startServiceExtensionAbility()**. The value of **startId** is incremented for each ability that is started.
W
wusongqing 已提交
84

W
wusongqing 已提交
85
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
W
wusongqing 已提交
86

87 88
**System API**: This is a system API and cannot be called by third-party applications.

W
wusongqing 已提交
89
**Parameters**
W
wusongqing 已提交
90

91 92 93 94
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md) | Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.|
| startId | number | Yes| Number of ability start times. The initial value is **1**, and the value is automatically incremented for each ability started.|
W
wusongqing 已提交
95

W
wusongqing 已提交
96 97
**Example**

98
  ```ts
W
wusongqing 已提交
99 100
  class ServiceExt extends ServiceExtension {
    onRequest(want, startId) {
101
      console.log('onRequest, want: ${want.abilityName}');
W
wusongqing 已提交
102
    }
W
wusongqing 已提交
103 104 105 106
  }
  ```


W
wusongqing 已提交
107
## ServiceExtensionAbility.onConnect
W
wusongqing 已提交
108

G
Gloria 已提交
109
onConnect(want: Want): rpc.RemoteObject | Promise<rpc.RemoteObject>;
W
wusongqing 已提交
110

111
Called following **onCreate()** when a ServiceExtensionAbility is started by calling **connectAbility()**. A **RemoteObject** object is returned for communication between the server and client.
W
wusongqing 已提交
112

W
wusongqing 已提交
113
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
W
wusongqing 已提交
114

115 116
**System API**: This is a system API and cannot be called by third-party applications.

W
wusongqing 已提交
117
**Parameters**
W
wusongqing 已提交
118

119 120 121
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.|
W
wusongqing 已提交
122

W
wusongqing 已提交
123 124
**Return value**

125 126 127
| Type| Description|
| -------- | -------- |
| rpc.RemoteObject | A **RemoteObject** object used for communication between the server and client.|
W
wusongqing 已提交
128

W
wusongqing 已提交
129 130
**Example**

131
  ```ts
132
  import rpc from '@ohos.rpc';
W
wusongqing 已提交
133 134 135 136
  class StubTest extends rpc.RemoteObject{
      constructor(des) {
          super(des);
      }
W
wusongqing 已提交
137
      onConnect(code, data, reply, option) {
W
wusongqing 已提交
138 139
      }
  }
W
wusongqing 已提交
140 141
  class ServiceExt extends ServiceExtension {
    onConnect(want) {
142 143
      console.log('onConnect , want: ${want.abilityName}');
      return new StubTest('test');
W
wusongqing 已提交
144
    }
W
wusongqing 已提交
145 146 147 148
  }
  ```


W
wusongqing 已提交
149
## ServiceExtensionAbility.onDisconnect
W
wusongqing 已提交
150

151
onDisconnect(want: Want): void | Promise\<void>;
W
wusongqing 已提交
152

153
Called when a client is disconnected from this ServiceExtensionAbility.
W
wusongqing 已提交
154

W
wusongqing 已提交
155
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
W
wusongqing 已提交
156

157 158
**System API**: This is a system API and cannot be called by third-party applications.

W
wusongqing 已提交
159
**Parameters**
W
wusongqing 已提交
160

161 162 163
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.|
W
wusongqing 已提交
164

W
wusongqing 已提交
165 166
**Example**

167
  ```ts
W
wusongqing 已提交
168 169
  class ServiceExt extends ServiceExtension {
    onDisconnect(want) {
170
      console.log('onDisconnect, want: ${want.abilityName}');
W
wusongqing 已提交
171
    }
W
wusongqing 已提交
172 173
  }
  ```
174 175 176 177 178

## ServiceExtensionAbility.onReconnect

onReconnect(want: Want): void;

179
Called when a new client attempts to connect to this ServiceExtensionAbility after all previous clients are disconnected. This capability is reserved.
180 181 182 183 184 185 186

**System capability**: SystemCapability.Ability.AbilityRuntime.Core

**System API**: This is a system API and cannot be called by third-party applications.

**Parameters**

187 188 189
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-app-ability-want.md)| Yes| Want information related to this ServiceExtensionAbility, including the ability name and bundle name.|
190 191 192

**Example**

193
  ```ts
194
  class ServiceExt extends ServiceExtension {
195
    onReconnect(want) {
196
      console.log('onReconnect, want: ${want.abilityName}');
197 198 199 200
    }
  }
  ```

201
## ServiceExtensionAbility.onConfigurationUpdate
202

203
onConfigurationUpdate(newConfig: Configuration): void;
204

205
Called when the configuration of this ServiceExtensionAbility is updated.
206 207 208 209 210 211 212

**System capability**: SystemCapability.Ability.AbilityRuntime.Core

**System API**: This is a system API and cannot be called by third-party applications.

**Parameters**

213 214 215
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| newConfig | [Configuration](js-apis-app-ability-configuration.md) | Yes| New configuration.|
216 217 218

**Example**
    
219
  ```ts
220
  class ServiceExt extends ServiceExtension {
221
      onConfigurationUpdate(config) {
222
          console.log('onConfigurationUpdate, config: ${JSON.stringify(config)}');
223 224 225 226
      }
  }
  ```

227
## ServiceExtensionAbility.onDump
228

229
onDump(params: Array\<string>): Array\<string>;
230 231 232

Dumps the client information.

233
**System capability**: SystemCapability.Ability.AbilityRuntime.Core
234 235 236 237 238

**System API**: This is a system API and cannot be called by third-party applications.

**Parameters**

239 240 241
| Name| Type| Mandatory| Description|
| -------- | -------- | -------- | -------- |
| params | Array\<string> | Yes| Parameters in the form of a command.|
242 243 244

**Example**
    
245
  ```ts
246
  class ServiceExt extends ServiceExtension {
247
      onDump(params) {
248 249
          console.log('dump, params: ${JSON.stringify(params)}');
          return ['params'];
250 251 252
      }
  }
  ```