@ohos.app.ability.ServiceExtensionAbility (ServiceExtensionAbility)
The ServiceExtensionAbility module provides lifecycle callbacks when a ServiceExtensionAbility (background service) is created, destroyed, connected, or disconnected.
NOTE
The APIs of this module are supported since API version 9 and are deprecated in versions later than API version 9. You are advised to use @ohos.app.ability.ServiceExtensionAbility instead. Newly added APIs will be marked with a superscript to indicate their earliest API version. The APIs of this module can be used only in the stage model.
Modules to Import
import ServiceExtension from '@ohos.app.ability.ServiceExtensionAbility';
Required Permissions
None.
Attributes
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Name | Type | Readable | Writable | Description |
---|---|---|---|---|
context | ServiceExtensionContext | Yes | No | ServiceExtensionContext, which is inherited from ExtensionContext. |
ServiceExtensionAbility.onCreate
onCreate(want: Want): void;
Called when a ServiceExtensionAbility is created to initialize the service logic.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information related to this ServiceExtensionAbility, including the ability name and bundle name. |
Example
class ServiceExt extends ServiceExtension {
onCreate(want) {
console.log('onCreate, want:' + want.abilityName);
}
}
ServiceExtensionAbility.onDestroy
onDestroy(): void;
Called when this ServiceExtensionAbility is destroyed to clear resources.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Example
class ServiceExt extends ServiceExtension {
onDestroy() {
console.log('onDestroy');
}
}
ServiceExtensionAbility.onRequest
onRequest(want: Want, startId: number): void;
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.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | 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. |
Example
class ServiceExt extends ServiceExtension {
onRequest(want, startId) {
console.log('onRequest, want:' + want.abilityName);
}
}
ServiceExtensionAbility.onConnect
onConnect(want: Want): rpc.RemoteObject | Promise<rpc.RemoteObject>;
Called following onCreate() when a ServiceExtensionAbility is started by calling connectAbility(). A RemoteObject object is returned for communication between the server and client.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information related to this ServiceExtensionAbility, including the ability name and bundle name. |
Return value
Type | Description |
---|---|
rpc.RemoteObject | A RemoteObject object used for communication between the server and client. |
Example
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 | Promise<void>;
Called when a client is disconnected from this ServiceExtensionAbility.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information related to this ServiceExtensionAbility, including the ability name and bundle name. |
Example
class ServiceExt extends ServiceExtension {
onDisconnect(want) {
console.log('onDisconnect, want:' + want.abilityName);
}
}
ServiceExtensionAbility.onReconnect
onReconnect(want: Want): void;
Called when a new client attempts to connect to this ServiceExtensionAbility after all previous clients are disconnected. This capability is reserved.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
want | Want | Yes | Want information related to this ServiceExtensionAbility, including the ability name and bundle name. |
Example
class ServiceExt extends ServiceExtension {
onReconnect(want) {
console.log('onReconnect, want:' + want.abilityName);
}
}
ServiceExtensionAbility.onConfigurationUpdate
onConfigurationUpdate(newConfig: Configuration): void;
Called when the configuration of this ServiceExtensionAbility is updated.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
newConfig | Configuration | Yes | New configuration. |
Example
class ServiceExt extends ServiceExtension {
onConfigurationUpdate(config) {
console.log('onConfigurationUpdate, config:' + JSON.stringify(config));
}
}
ServiceExtensionAbility.onDump
onDump(params: Array<string>): Array<string>;
Dumps the client information.
System capability: SystemCapability.Ability.AbilityRuntime.Core
System API: This is a system API and cannot be called by third-party applications.
Parameters
Name | Type | Mandatory | Description |
---|---|---|---|
params | Array<string> | Yes | Parameters in the form of a command. |
Example
class ServiceExt extends ServiceExtension {
onDump(params) {
console.log('dump, params:' + JSON.stringify(params));
return ['params'];
}
}