js-apis-service-extension-ability.md 4.2 KB
Newer Older
Y
yuyaozhi 已提交
1
# ServiceExtensionAbility
2

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

8
提供ServiceExtension服务扩展相关接口。
9 10 11 12

## 导入模块

```
Y
yuyaozhi 已提交
13
import ServiceExtension from '@ohos.application.ServiceExtensionAbility';
14 15 16 17 18 19 20 21
```

## 权限



## 属性

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

24
| 名称 | 参数类型 | 可读 | 可写 | 说明 | 
25
| -------- | -------- | -------- | -------- | -------- |
26
| context | [ServiceExtensionContext](js-apis-service-extension-context.md)  | 是 | 否 | ServiceExtension的上下文环境,继承自ExtensionContext。 | 
27 28


Y
yuyaozhi 已提交
29
## ServiceExtensionAbility.onCreate
30

31
onCreate(want: Want): void;
32

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

Y
yuyaozhi 已提交
35
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
36

Y
yuyaozhi 已提交
37
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
38

39
  | 参数名 | 类型 | 必填 | 说明 | 
40
  | -------- | -------- | -------- | -------- |
X
xuchenghua 已提交
41
  | want |  [Want](js-apis-application-Want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
42

Y
yuyaozhi 已提交
43 44 45
**示例:**

  ```js
ahjxliubao2's avatar
ahjxliubao2 已提交
46 47
  class ServiceExt extends ServiceExtension {
    onCreate(want) {
48
      console.log('onCreate, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
49
    }
50 51 52 53
  }
  ```


Y
yuyaozhi 已提交
54
## ServiceExtensionAbility.onDestroy
55

56
onDestroy(): void;
57

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

Y
yuyaozhi 已提交
60
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
61

Y
yuyaozhi 已提交
62
**示例:**
ahjxliubao2's avatar
ahjxliubao2 已提交
63

Y
yuyaozhi 已提交
64
  ```js
ahjxliubao2's avatar
ahjxliubao2 已提交
65 66
  class ServiceExt extends ServiceExtension {
    onDestroy() {
67
      console.log('onDestroy');
ahjxliubao2's avatar
ahjxliubao2 已提交
68
    }
69 70 71 72
  }
  ```


Y
yuyaozhi 已提交
73
## ServiceExtensionAbility.onRequest
74

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

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

Y
yuyaozhi 已提交
79
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
80

Y
yuyaozhi 已提交
81
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
82

83
  | 参数名 | 类型 | 必填 | 说明 | 
84
  | -------- | -------- | -------- | -------- |
X
xuchenghua 已提交
85
  | want |  [Want](js-apis-application-Want.md) | 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
86
  | startId | number | 是 | 返回拉起次数。首次拉起初始值返回1,多次之后自动递增。 | 
87

Y
yuyaozhi 已提交
88 89 90
**示例:**

  ```js
ahjxliubao2's avatar
ahjxliubao2 已提交
91 92
  class ServiceExt extends ServiceExtension {
    onRequest(want, startId) {
93
      console.log('onRequest, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
94
    }
95 96 97 98
  }
  ```


Y
yuyaozhi 已提交
99
## ServiceExtensionAbility.onConnect
100

101
onConnect(want: Want): rpc.RemoteObject;
102

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

Y
yuyaozhi 已提交
105
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
106

Y
yuyaozhi 已提交
107
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
108

109
  | 参数名 | 类型 | 必填 | 说明 | 
110
  | -------- | -------- | -------- | -------- |
X
xuchenghua 已提交
111
  | want |  [Want](js-apis-application-Want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
112

Y
yuyaozhi 已提交
113 114
**返回值:**

115
  | 类型 | 说明 | 
116
  | -------- | -------- |
117
  | rpc.RemoteObject | 一个RemoteObject对象,用于和客户端进行通信。 | 
118

Y
yuyaozhi 已提交
119 120 121
**示例:**

  ```js
122 123 124 125 126
  import rpc from '@ohos.rpc'
  class StubTest extends rpc.RemoteObject{
      constructor(des) {
          super(des);
      }
Y
yuyaozhi 已提交
127
      onConnect(code, data, reply, option) {
128 129
      }
  }
ahjxliubao2's avatar
ahjxliubao2 已提交
130 131
  class ServiceExt extends ServiceExtension {
    onConnect(want) {
132 133
      console.log('onConnect , want:' + want.abilityName);
      return new StubTest("test");
ahjxliubao2's avatar
ahjxliubao2 已提交
134
    }
135 136 137 138
  }
  ```


Y
yuyaozhi 已提交
139
## ServiceExtensionAbility.onDisconnect
140

141
onDisconnect(want: Want): void;
142 143 144

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

Y
yuyaozhi 已提交
145
**系统能力**:SystemCapability.Ability.AbilityRuntime.Core
ahjxliubao2's avatar
ahjxliubao2 已提交
146

Y
yuyaozhi 已提交
147
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
148

149
  | 参数名 | 类型 | 必填 | 说明 | 
150
  | -------- | -------- | -------- | -------- |
X
xuchenghua 已提交
151
  | want |[Want](js-apis-application-Want.md)| 是 | 当前Extension相关的Want类型信息,包括ability名称、bundle名称等。 | 
152

Y
yuyaozhi 已提交
153 154 155
**示例:**

  ```js
ahjxliubao2's avatar
ahjxliubao2 已提交
156 157
  class ServiceExt extends ServiceExtension {
    onDisconnect(want) {
158
      console.log('onDisconnect, want:' + want.abilityName);
ahjxliubao2's avatar
ahjxliubao2 已提交
159
    }
160 161
  }
  ```