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

> ![icon-note.gif](public_sys-resources/icon-note.gif) **说明:**
4
> 本模块首批接口从API version 9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
5 6


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


## 导入模块

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


## 权限




## 属性

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

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


Y
yuyaozhi 已提交
31
## ServiceExtensionAbility.onCreate
32

33
onCreate(want: Want): void;
34

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

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

Y
yuyaozhi 已提交
39
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
40

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

Y
yuyaozhi 已提交
45 46 47
**示例:**

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


Y
yuyaozhi 已提交
56
## ServiceExtensionAbility.onDestroy
57

58
onDestroy(): void;
59

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

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

Y
yuyaozhi 已提交
64
**示例:**
ahjxliubao2's avatar
ahjxliubao2 已提交
65

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


Y
yuyaozhi 已提交
75
## ServiceExtensionAbility.onRequest
76

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

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

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

Y
yuyaozhi 已提交
83
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
84

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

Y
yuyaozhi 已提交
90 91 92
**示例:**

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


Y
yuyaozhi 已提交
101
## ServiceExtensionAbility.onConnect
102

103
onConnect(want: Want): rpc.RemoteObject;
104

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

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

Y
yuyaozhi 已提交
109
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
110

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

Y
yuyaozhi 已提交
115 116
**返回值:**

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

Y
yuyaozhi 已提交
121 122 123
**示例:**

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


Y
yuyaozhi 已提交
141
## ServiceExtensionAbility.onDisconnect
142

143
onDisconnect(want: Want): void;
144 145 146

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

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

Y
yuyaozhi 已提交
149
**参数:**
ahjxliubao2's avatar
ahjxliubao2 已提交
150

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

Y
yuyaozhi 已提交
155 156 157
**示例:**

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