js-apis-app-ability-serviceExtensionAbility.md 6.7 KB
Newer Older
Z
zengyawen 已提交
1
# @ohos.app.ability.ServiceExtensionAbility (ServiceExtensionAbility)
D
donglin 已提交
2

Z
zhongjianfei 已提交
3
ServiceExtensionAbility模块提供后台服务相关扩展能力,提供后台服务创建、销毁、连接、断开等生命周期回调。
D
donglin 已提交
4 5 6

> **说明:**
> 
D
donglin 已提交
7
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。  
D
donglin 已提交
8 9 10 11
> 本模块接口仅可在Stage模型下使用。

## 导入模块

M
m00512953 已提交
12
```ts
D
donglin 已提交
13 14 15 16 17 18 19 20 21 22 23 24 25
import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility';
```

## 权限



## 属性

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

Z
zhongjianfei 已提交
26
| 名称 | 类型 | 可读 | 可写 | 说明 |
D
donglin 已提交
27
| -------- | -------- | -------- | -------- | -------- |
Z
zhongjianfei 已提交
28
| context | [ServiceExtensionContext](js-apis-inner-application-serviceExtensionContext.md)  | 是 | 否 | ServiceExtension的上下文环境,继承自ExtensionContext。 |
D
donglin 已提交
29 30 31 32 33 34 35 36 37 38 39 40 41 42


## ServiceExtensionAbility.onCreate

onCreate(want: Want): void;

Extension生命周期回调,在创建时回调,执行初始化业务逻辑操作。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
43 44 45
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 |
D
donglin 已提交
46 47 48

**示例:**

M
m00512953 已提交
49
  ```ts
D
donglin 已提交
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
  class ServiceExt extends ServiceExtension {
    onCreate(want) {
      console.log('onCreate, want:' + want.abilityName);
    }
  }
  ```


## ServiceExtensionAbility.onDestroy

onDestroy(): void;

Extension生命周期回调,在销毁时回调,执行资源清理等操作。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**示例:**

M
m00512953 已提交
70
  ```ts
D
donglin 已提交
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90
  class ServiceExt extends ServiceExtension {
    onDestroy() {
      console.log('onDestroy');
    }
  }
  ```


## ServiceExtensionAbility.onRequest

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

Extension生命周期回调,如果是startAbility拉起的服务,会在onCreate之后回调。每次拉起服务都会回调,startId会递增。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
91 92 93 94
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 |
| startId | number | 是 | 返回拉起次数。首次拉起初始值返回1,多次之后自动递增。 |
D
donglin 已提交
95 96 97

**示例:**

M
m00512953 已提交
98
  ```ts
D
donglin 已提交
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
  class ServiceExt extends ServiceExtension {
    onRequest(want, startId) {
      console.log('onRequest, want:' + want.abilityName);
    }
  }
  ```


## ServiceExtensionAbility.onConnect

onConnect(want: Want): rpc.RemoteObject;

Extension生命周期回调,如果是connectAbility拉起的服务,会在onCreate之后回调。返回一个RemoteObject对象,用于和客户端进行通信。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
119 120 121
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |  [Want](js-apis-app-ability-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 |
D
donglin 已提交
122 123 124

**返回值:**

Z
zhongjianfei 已提交
125 126 127
| 类型 | 说明 |
| -------- | -------- |
| rpc.RemoteObject | 一个RemoteObject对象,用于和客户端进行通信。 |
D
donglin 已提交
128 129 130

**示例:**

M
m00512953 已提交
131
  ```ts
D
donglin 已提交
132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160
  import rpc from '@ohos.rpc'
  class StubTest extends rpc.RemoteObject{
      constructor(des) {
          super(des);
      }
      onConnect(code, data, reply, option) {
      }
  }
  class ServiceExt extends ServiceExtension {
    onConnect(want) {
      console.log('onConnect , want:' + want.abilityName);
      return new StubTest("test");
    }
  }
  ```


## ServiceExtensionAbility.onDisconnect

onDisconnect(want: Want): void;

Extension的生命周期,断开服务连接时回调。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
161 162 163
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-app-ability-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 |
D
donglin 已提交
164 165 166

**示例:**

M
m00512953 已提交
167
  ```ts
D
donglin 已提交
168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186
  class ServiceExt extends ServiceExtension {
    onDisconnect(want) {
      console.log('onDisconnect, want:' + want.abilityName);
    }
  }
  ```

## ServiceExtensionAbility.onReconnect

onReconnect(want: Want): void;

当新客户端在所有以前的客户端连接之后尝试连接到服务扩展时调用

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
187 188 189
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| want |[Want](js-apis-app-ability-want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 |
D
donglin 已提交
190 191 192

**示例:**

M
m00512953 已提交
193
  ```ts
D
donglin 已提交
194 195 196 197 198 199 200
  class ServiceExt extends ServiceExtension {
    onReconnect(want) {
      console.log('onReconnect, want:' + want.abilityName);
    }
  }
  ```

D
fix  
donglin 已提交
201
## ServiceExtensionAbility.onConfigurationUpdate
D
donglin 已提交
202

D
ability  
donglin 已提交
203
onConfigurationUpdate(newConfig: Configuration): void;
D
donglin 已提交
204 205 206 207 208 209 210 211 212

当Extension更新配置信息时调用。

**系统能力**:SystemCapability.Ability.AbilityRuntime.Core

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
213 214 215
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| newConfig | [Configuration](js-apis-app-ability-configuration.md) | 是 | 表示需要更新的配置信息。 |
D
donglin 已提交
216 217 218

**示例:**
    
M
m00512953 已提交
219
  ```ts
D
donglin 已提交
220
  class ServiceExt extends ServiceExtension {
D
fix  
donglin 已提交
221 222
      onConfigurationUpdate(config) {
          console.log('onConfigurationUpdate, config:' + JSON.stringify(config));
D
donglin 已提交
223 224 225 226 227 228 229 230 231 232
      }
  }
  ```

## ServiceExtensionAbility.onDump

onDump(params: Array\<string>): Array\<string>;

转储客户端信息时调用。

D
ability  
donglin 已提交
233
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
D
donglin 已提交
234 235 236 237 238

**系统API**: 此接口为系统接口,三方应用不支持调用。

**参数:**

Z
zhongjianfei 已提交
239 240 241
| 参数名 | 类型 | 必填 | 说明 |
| -------- | -------- | -------- | -------- |
| params | Array\<string> | 是 | 表示命令形式的参数。|
D
donglin 已提交
242 243 244

**示例:**
    
M
m00512953 已提交
245
  ```ts
D
donglin 已提交
246 247 248 249 250 251 252 253
  class ServiceExt extends ServiceExtension {
      onDump(params) {
          console.log('dump, params:' + JSON.stringify(params));
          return ["params"]
      }
  }
  ```