# AbilityKit - [Overview](#section2113005606165623) - [Summary](#section50038972165623) - [Files](#files) - [Data Structures](#nested-classes) - [Macros](#define-members) - [Enumerations](#enum-members) - [Functions](#func-members) - [Details](#section268415259165623) - [Macro Definition](#section1597786070165623) - [REGISTER\_AA](#ga2c5bd891b502a92f937ae4bff3f80cad) - [REGISTER\_AS](#ga8e811999b2b7780e67cb746d045ab5b8) - [Enumeration Type](#section1266264770165623) - [anonymous enum](#ga99fb83031ce9923c84392b4e92f956b5) - [State](#ga5d74787dedbc4e11c1ab15bf487e61f8) - [Function](#section1829026629165623) - [ClearWant\(\)](#ga62ca448e092c81497ffdd1f0b1c56938) - [ConnectAbility\(\) \[1/2\]](#ga4da460ac085a8da1c665f317fcde2ba1) - [ConnectAbility\(\) \[2/2\]](#gaae6c2bbb6ab0df92e39c1daad2bd901f) - [DisconnectAbility\(\) \[1/2\]](#ga1d9023597a9889dbb4015565a10f3470) - [DisconnectAbility\(\) \[2/2\]](#ga2769216a4c2654d3297a2fdb4011ea7a) - [Dump\(\)](#ga5330624843c776ebe61366540d32eb92) - [GetBundleName\(\)](#gac893d7c01fabee34f80294e3e026c37d) - [GetCurrentHandler\(\)](#gad26d144aaecd3185be6902e6d7399b9e) - [GetDataPath\(\)](#ga9be6a002714f3fb61b2335dd13ed9787) - [GetSrcPath\(\)](#ga7cead123e67bea6db8a34c8ae100e6c5) - [MsgHandle\(\)](#gab2d208621c7236c3608afb77d8a02966) - [OnActive\(\) \[1/2\]](#ga1a588eb6635e42979e18ac8013f9ea61) - [OnActive\(\) \[2/2\]](#ga3135bfa435f5aaa185f21014a9e86e59) - [OnBackground\(\) \[1/2\]](#ga19217479f8468b525460be156827a524) - [OnBackground\(\) \[2/2\]](#ga8185ad517d94ca99a00917d3d1f10620) - [OnConnect\(\)](#ga88e9dbaaa083be9f06adeea27680ef76) - [OnDisconnect\(\)](#gac17d2b81d661134b63ee74b0212eace6) - [OnInactive\(\) \[1/2\]](#gae050b00aa885765bb6808374be772615) - [OnInactive\(\) \[2/2\]](#gae251a38aa7c0aebd7498eef86deab7c1) - [OnStart\(\) \[1/2\]](#gad3ffda54b710b0b86e54bd6c13efae98) - [OnStart\(\) \[2/2\]](#ga4d016d42397f33c7710db8544581c757) - [OnStop\(\) \[1/2\]](#ga4e1556b780a1271e61328e659fc30eb9) - [OnStop\(\) \[2/2\]](#gaa4145b360bbe5cdb5d267b17ac12af6a) - [PostTask\(\)](#gad4d0911a8bccd5aca32464bad867cb13) - [Present\(\)](#gab2ec8b885edd0d5818b4c60541c1875f) - [SetMainRoute\(\)](#gac83a9af046458b7f6bfaf85071b093f4) - [SetUIContent\(\) \[1/2\]](#ga050a81cda49edb471594447f8f4cdaac) - [SetUIContent\(\) \[2/2\]](#ga9b734c2ad8ad52f906d676f0c897a4aa) - [SetWantData\(\)](#ga89a719b5f730bc5fde9f637a5ed630c9) - [SetWantElement\(\)](#ga65f4d2eab99497e496dcd493bd0d047e) - [SetWantSvcIdentity\(\)](#gab8e5fac952fc6407f20cd9b7185d3a65) - [StartAbility\(\) \[1/2\]](#gab11d708d5eaa1eca54828fa88625681a) - [StartAbility\(\) \[2/2\]](#gae79800c4077afdc2851d5a74d8964111) - [StopAbility\(\) \[1/2\]](#gadc670d5f6df0d485ee3062b70b3ffe99) - [StopAbility\(\) \[2/2\]](#gaba99bbd4ff6da4fb072338f5ce95e6ae) - [Terminate\(\)](#gaf424e47c7980ff92093c6b7b75888639) - [TerminateAbility\(\)](#gac4a36f03c60fcbeca3b47192ccab1d24) - [WantParseUri\(\)](#ga43226d0858faa92e83bea33aaf4b614c) - [WantToUri\(\)](#ga31adc60981c10b22d0e9bbdc7126d17c) - [Variable](#section1912686851165623) - [OnAbilityConnectDone](#ga3b9bfacbcf1564c83cffbfff7889998a) - [OnAbilityDisconnectDone](#gaba7cf0abb517890ef1a3949e398aaf1d) ## **Overview** **Description:** Provides ability-related functions, including ability lifecycle callbacks and functions for connecting to or disconnecting from Particle Abilities. Abilities are classified into [Feature](Feature.md) Abilities and Particle Abilities. [Feature](Feature.md) Abilities support the Page template, and Particle Abilities support the [Service](Service.md) template. An ability using the Page template is called a Page ability for short and that using the [Service](Service.md) template is called a [Service](Service.md) ability. **Since:** 1.0 **Version:** 1.0 ## **Summary** ## Files

File Name

Description

ability.h

Declares ability-related functions, including ability lifecycle callbacks and functions for connecting to or disconnecting from Particle Abilities.

ability_connection.h

Declares callbacks to be invoked when a remote Service ability is connected or disconnected.

ability_context.h

Declares functions for starting and stopping an ability.

ability_env.h

Declares functions for obtaining information about the runtime environment of the application to which the ability belongs, including the bundle name, source code path, and data path.

ability_errors.h

Declares error codes returned by ability management functions.

ability_event_handler.h

Declares functions for performing operations during inter-thread communication, including running and quitting the event loop of the current thread and posting tasks to an asynchronous thread.

ability_loader.h

Declares functions for registering the class names of Ability and AbilitySlice with the ability management framework.

ability_manager.h

Declares ability-related functions, including functions for starting, stopping, connecting to, and disconnecting from an ability, registering a callback, and unregistering a callback.

ability_slice.h

Declares ability slice-related functions, including ability slice lifecycle callbacks and functions for connecting to or disconnecting from ability slices.

ability_state.h

Declares ability-related functions, including ability lifecycle callbacks and functions for connecting to or disconnecting from Particle Abilities. As the fundamental unit of OpenHarmony applications, abilities are classified into Feature Abilities and Particle Abilities. Feature Abilities support the Page template, and Particle Abilities support the Service template. An ability using the Page template is called a Page ability for short and that using the Service template is called a Service ability.

want.h

Declares the structure that provides abstract description of the operation to be performed, including the ability information and the carried data, and functions for setting data in the structure.

## Data Structures

Data Structure Name

Description

OHOS::Ability

Declares ability-related functions, including ability lifecycle callbacks and functions for connecting to or disconnecting from Particle Abilities.

IAbilityConnection

Provides callbacks to be invoked when a remote Service ability is connected or disconnected.

OHOS::AbilityContext

Provides functions for starting and stopping an ability.

OHOS::AbilityEventHandler

Declares functions for performing operations during inter-thread communication, including running and quitting the event loop of the current thread and posting tasks to an asynchronous thread.

OHOS::AbilityLoader

Declares functions for registering the class names of Ability and AbilitySlice with the ability management framework.

OHOS::AbilitySlice

Provides ability slice-related functions, including ability slice lifecycle callbacks and functions for connecting to or disconnecting from ability slices.

Want

Defines the abstract description of an operation, including information about the ability and the extra data to carry.

## Macros

Macro Name and Value

Description

REGISTER_AA(className)

Registers the class name of an Ability child class.

REGISTER_AS(className)

Registers the class name of an AbilitySlice child class.

## Enumerations

Enumeration Name

Description

{ ERR_OK = 0, PARAM_NULL_ERROR, MEMORY_MALLOC_ERROR, DUMP_ABILITIES_ERROR, IPC_REQUEST_ERROR, SERIALIZE_ERROR, COMMAND_ERROR = 0x7fff }

Declares error codes returned by ability management functions.

State { STATE_UNINITIALIZED, STATE_INITIAL, STATE_INACTIVE, STATE_ACTIVE, STATE_BACKGROUND }

Enumerates all lifecycle states that an ability will go through over the course of its lifetime.

## Functions

Function

Description

OHOS::Ability::OnStart (const Want &want)

virtual void

Called when this ability is started. You must override this function if you want to perform some initialization operations during ability startup.

OHOS::Ability::OnInactive ()

virtual void

Called when this ability enters the STATE_INACTIVE state.

OHOS::Ability::OnActive (const Want &want)

virtual void

Called when this ability enters the STATE_ACTIVE state.

OHOS::Ability::OnBackground ()

virtual void

Called when this ability enters the STATE_BACKGROUND state.

OHOS::Ability::OnStop ()

virtual void

Called when this ability enters the STATE_STOP state.

OHOS::Ability::OnConnect (const Want &want)

virtual const SvcIdentity *

Called when this Service ability is connected for the first time.

OHOS::Ability::OnDisconnect (const Want &want)

virtual void

Called when all abilities connected to this Service ability are disconnected.

OHOS::Ability::SetMainRoute (const std::string &entry)

void

Sets the main route for this ability.

OHOS::Ability::SetUIContent (RootView *rootView)

void

Sets the UI layout for this ability. You can call GetWindowRootView() to create a layout and add controls.

OHOS::Ability::MsgHandle (uint32_t funcId, IpcIo *request, IpcIo *reply)

virtual void

Handles a message sent by the client to this Service ability.

OHOS::Ability::Dump (const std::string &extra)

virtual void

Prints ability information to the console.

OHOS::AbilityContext::StartAbility (const Want &want)

int

Starts an Ability based on the specified Want information.

OHOS::AbilityContext::StopAbility (const Want &want)

int

Stops an Ability based on the specified Want information.

OHOS::AbilityContext::TerminateAbility ()

int

Destroys this Ability.

OHOS::AbilityContext::ConnectAbility (const Want &want, const IAbilityConnection &conn, void *data)

int

Connects to a Service ability based on the specified Want information.

OHOS::AbilityContext::DisconnectAbility (const IAbilityConnection &conn)

int

Disconnects from a Service ability.

GetBundleName ()

const char *

Obtains the bundle name of the application to which this ability belongs.

GetSrcPath ()

const char *

Obtains the source code path of this ability.

GetDataPath ()

const char *

Obtains the data path of this ability.

OHOS::AbilityEventHandler::Run ()

void

Starts running the event loop of the current thread.

OHOS::AbilityEventHandler::PostTask (const Task &task)

void

Posts a task to an asynchronous thread.

OHOS::AbilityEventHandler::PostQuit ()

void

Quits the event loop of the current thread.

OHOS::AbilityEventHandler::GetCurrentHandler ()

static AbilityEventHandler *

Obtains the event handler of the current thread.

StartAbility (const Want *want)

int

Starts an ability based on the specified Want information.

StopAbility (const Want *want)

int

Stops an ability based on the specified Want information.

ConnectAbility (const Want *want, const IAbilityConnection *conn, void *data)

int

Connects to a Service ability based on the specified Want information.

DisconnectAbility (const IAbilityConnection *conn)

int

Disconnects from a Service ability.

OHOS::AbilitySlice::OnStart (const Want &want)

virtual void

Called when this ability slice is started. You must override this function if you want to perform some initialization operations during ability slice startup.

OHOS::AbilitySlice::OnInactive ()

virtual void

Called when this ability slice enters the STATE_INACTIVE state.

OHOS::AbilitySlice::OnActive (const Want &want)

virtual void

Called when this ability slice enters the STATE_ACTIVE state.

OHOS::AbilitySlice::OnBackground ()

virtual void

Called when this ability slice enters the STATE_BACKGROUND state.

OHOS::AbilitySlice::OnStop ()

virtual void

Called when this ability slice enters the STATE_STOP state.

OHOS::AbilitySlice::Present (AbilitySlice &abilitySlice, const Want &want)

void

Presents another ability slice, which can be an ability slice that is not started or an existing ability slice in the host ability.

OHOS::AbilitySlice::Terminate ()

void

Destroys this ability slice.

OHOS::AbilitySlice::SetUIContent (RootView *rootView)

void

Sets the UI layout for the host ability of this ability slice.

ClearWant (Want *want)

void

Clears the memory of a specified Want object.

SetWantElement (Want *want, ElementName element)

bool

Sets the element variable for a specified Want object.

SetWantData (Want *want, const void *data, uint16_t dataLength)

bool

Sets data to carry in a specified Want object for starting a particular ability.

SetWantSvcIdentity (Want *want, SvcIdentity sid)

bool

Sets the sid member variable for a specified Want object.

WantToUri (Want want)

const char *

Converts a specified Want object into a character string.

WantParseUri (const char *uri)

Want *

Converts a specified character string into a Want object.

## **Details** ## **Macro Definition ** ## REGISTER\_AA ``` #define REGISTER_AA( className) ``` ``` Values: __attribute__((constructor)) void RegisterAA##className() { \ AbilityLoader::GetInstance().RegisterAbility(#className, []()->Ability* { \ return new className; \ }); \ } ``` **Description:** Registers the class name of an **Ability** child class. After implementing your own **Ability** class, you should call this function so that the ability management framework can create **Ability** instances when loading your **Ability** class. **Parameters:**

Name

Description

className Indicates the Ability class name to register.
## REGISTER\_AS ``` #define REGISTER_AS( className) ``` ``` Values: __attribute__((constructor)) void RegisterAS##className() { \ AbilityLoader::GetInstance().RegisterAbilitySlice(#className, []()->AbilitySlice* { \ return new className; \ }); \ } ``` **Description:** Registers the class name of an **AbilitySlice** child class. After implementing your own **AbilitySlice** class, you should call this function so that the ability management framework can create **AbilitySlice** instances when loading your **AbilitySlice** class. **Parameters:**

Name

Description

className Indicates the AbilitySlice class name to register.
## **Enumeration Type ** ## anonymous enum ``` anonymous enum ``` **Description:** Declares error codes returned by ability management functions.

Enumerator

Description

ERR_OK

The function is successfully called.

PARAM_NULL_ERROR

The parameter is null.

MEMORY_MALLOC_ERROR

Memory allocation error.

DUMP_ABILITIES_ERROR

An error occurred during the execution of the Dump function.

IPC_REQUEST_ERROR

IPC request error.

SERIALIZE_ERROR

Serialization error.

COMMAND_ERROR

Command error.

## State ``` enum [State](AbilityKit.md#ga5d74787dedbc4e11c1ab15bf487e61f8) ``` **Description:** Enumerates all lifecycle states that an ability will go through over the course of its lifetime.

Enumerator

Description

STATE_UNINITIALIZED

Uninitialized state: An ability is in this state when it has not been initialized after being created.

STATE_INITIAL

Initial state: An ability is in this state after it is initialized or stopped.

STATE_INACTIVE

Inactive state: An ability is in this state when it is switched to the foreground but is not interactive.

STATE_ACTIVE

Active state: An ability is in this state when it is switched to the foreground and is interactive.

STATE_BACKGROUND

Background state: An ability is in this state after it returns to the background.

## **Function ** ## ClearWant\(\) ``` void ClearWant ([Want](Want.md) * want) ``` **Description:** Clears the memory of a specified **[Want](Want.md)** object. After calling functions such as [SetWantElement](AbilityKit.md#ga65f4d2eab99497e496dcd493bd0d047e), you should call this function to clear the memory. **Parameters:**

Name

Description

want Indicates the pointer to the Want object whose memory is to be released.
## ConnectAbility\(\) \[1/2\] ``` int OHOS::AbilityContext::ConnectAbility (const [Want](Want.md) & want, const [IAbilityConnection](IAbilityConnection.md) & conn, void * data ) ``` **Description:** Connects to a [Service](Service.md) ability based on the specified [Want](Want.md) information. After the [Service](Service.md) ability is connected, the [Ability](OHOS-Ability.md) Manager [Service](Service.md) invokes a particular callback and returns the ID of the [Service](Service.md) ability. The client can use this ID to communicate with the connected [Service](Service.md) ability. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the Service ability to connect.
conn Indicates the callback to be invoked when the connection is successful.
data Indicates the pointer to the data to be passed to the callback.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## ConnectAbility\(\) \[2/2\] ``` int ConnectAbility (const [Want](Want.md) * want, const [IAbilityConnection](IAbilityConnection.md) * conn, void * data ) ``` **Description:** Connects to a [Service](Service.md) ability based on the specified [Want](Want.md) information. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the Service ability to connect.
conn Indicates the callback object when the Service ability is connected.
data Indicates the pointer to the data to be passed to the callback.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## DisconnectAbility\(\) \[1/2\] ``` int OHOS::AbilityContext::DisconnectAbility (const [IAbilityConnection](IAbilityConnection.md) & conn) ``` **Description:** Disconnects from a [Service](Service.md) ability. **Parameters:**

Name

Description

conn Indicates the callback to be invoked when the connection is successful.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## DisconnectAbility\(\) \[2/2\] ``` int DisconnectAbility (const [IAbilityConnection](IAbilityConnection.md) * conn) ``` **Description:** Disconnects from a [Service](Service.md) ability. **Parameters:**

Name

Description

conn Indicates the callback object when the Service ability is connected.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## Dump\(\) ``` virtual void OHOS::Ability::Dump (const std::string & extra) ``` **Description:** Prints ability information to the console. You can override this function to obtain or print extra parameters. **Parameters:**

Name

Description

extra Indicates the extra parameter to be obtained or printed to the console.
## GetBundleName\(\) ``` const char* GetBundleName () ``` **Description:** Obtains the bundle name of the application to which this ability belongs. **Returns:** Returns the pointer to the bundle name if the operation is successful; returns a null pointer otherwise. ## GetCurrentHandler\(\) ``` static [AbilityEventHandler](OHOS-AbilityEventHandler.md)* OHOS::AbilityEventHandler::GetCurrentHandler () ``` **Description:** Obtains the event handler of the current thread. **Returns:** Returns the pointer to the [AbilityEventHandler](OHOS-AbilityEventHandler.md) object of the current thread. ## GetDataPath\(\) ``` const char* GetDataPath () ``` **Description:** Obtains the data path of this ability. **Returns:** Returns the pointer to the data path of this ability. ## GetSrcPath\(\) ``` const char* GetSrcPath () ``` **Description:** Obtains the source code path of this ability. **Returns:** Returns the pointer to the source code path of this ability. ## MsgHandle\(\) ``` virtual void OHOS::Ability::MsgHandle (uint32_t funcId, IpcIo * request, IpcIo * reply ) ``` **Description:** Handles a message sent by the client to this [Service](Service.md) ability. **Parameters:**

Name

Description

funcId Indicates the type of the message sent by the client.
request Indicates the pointer to the serialized request parameters sent by the client.
reply Indicates the pointer to the serialized result returned to the client.
## OnActive\(\) \[1/2\] ``` virtual void OHOS::AbilitySlice::OnActive (const [Want](Want.md) & want) ``` **Description:** Called when this ability slice enters the **STATE\_ACTIVE** state. The ability slice in the **STATE\_ACTIVE** state is visible and has focus. You can override this function to implement your own processing logic. **Parameters:**

Name

Description

want Indicates the Want structure containing activation information about the ability slice.
## OnActive\(\) \[2/2\] ``` virtual void OHOS::Ability::OnActive (const [Want](Want.md) & want) ``` **Description:** Called when this ability enters the **STATE\_ACTIVE** state. The ability in the **STATE\_ACTIVE** state is visible and has focus. You can override this function to implement your own processing logic. **Parameters:**

Name

Description

want Indicates the Want structure containing activation information about the ability.
## OnBackground\(\) \[1/2\] ``` virtual void OHOS::AbilitySlice::OnBackground () ``` **Description:** Called when this ability slice enters the **STATE\_BACKGROUND** state. The ability slice in the **STATE\_BACKGROUND** state is invisible. You can override this function to implement your own processing logic. ## OnBackground\(\) \[2/2\] ``` virtual void OHOS::Ability::OnBackground () ``` **Description:** Called when this ability enters the **STATE\_BACKGROUND** state. The ability in the **STATE\_BACKGROUND** state is invisible. You can override this function to implement your own processing logic. ## OnConnect\(\) ``` virtual const SvcIdentity* OHOS::Ability::OnConnect (const [Want](Want.md) & want) ``` **Description:** Called when this [Service](Service.md) ability is connected for the first time. You can override this function to implement your own processing logic. **Parameters:**

Name

Description

want Indicates the Want structure containing connection information about the Service ability.
**Returns:** Returns a pointer to the **sid** of the connected [Service](Service.md) ability. ## OnDisconnect\(\) ``` virtual void OHOS::Ability::OnDisconnect (const [Want](Want.md) & want) ``` **Description:** Called when all abilities connected to this [Service](Service.md) ability are disconnected. You can override this function to implement your own processing logic. **Parameters:**

Name

Description

want Indicates the Want structure containing disconnection information about the Service ability.
## OnInactive\(\) \[1/2\] ``` virtual void OHOS::AbilitySlice::OnInactive () ``` **Description:** Called when this ability slice enters the **STATE\_INACTIVE** state. **STATE\_INACTIVE** is an instantaneous state. The ability slice in this state may be visible but does not have focus. You can override this function to implement your own processing logic. ## OnInactive\(\) \[2/2\] ``` virtual void OHOS::Ability::OnInactive () ``` **Description:** Called when this ability enters the **STATE\_INACTIVE** state. **STATE\_INACTIVE** is an instantaneous state. The ability in this state may be visible but does not have focus. You can override this function to implement your own processing logic. ## OnStart\(\) \[1/2\] ``` virtual void OHOS::AbilitySlice::OnStart (const [Want](Want.md) & want) ``` **Description:** Called when this ability slice is started. You must override this function if you want to perform some initialization operations during ability slice startup. This function can be called only once in the entire lifecycle of an ability slice. You can override this function to implement your own processing logic. **Parameters:**

Name

Description

want Indicates the Want structure containing startup information about the ability slice.
## OnStart\(\) \[2/2\] ``` virtual void OHOS::Ability::OnStart (const [Want](Want.md) & want) ``` **Description:** Called when this ability is started. You must override this function if you want to perform some initialization operations during ability startup. This function can be called only once in the entire lifecycle of an ability. **Parameters:**

Name

Description

want Indicates the Want structure containing startup information about the ability.
## OnStop\(\) \[1/2\] ``` virtual void OHOS::AbilitySlice::OnStop () ``` **Description:** Called when this ability slice enters the **STATE\_STOP** state. The ability slice in the **STATE\_STOP** state is being destroyed. You can override this function to implement your own processing logic. ## OnStop\(\) \[2/2\] ``` virtual void OHOS::Ability::OnStop () ``` **Description:** Called when this ability enters the **STATE\_STOP** state. The ability in the **STATE\_STOP** is being destroyed. You can override this function to implement your own processing logic. ## PostTask\(\) ``` void OHOS::AbilityEventHandler::PostTask (const Task & task) ``` **Description:** Posts a task to an asynchronous thread. **Parameters:**

Name

Description

task Indicates the task to post.
## Present\(\) ``` void OHOS::AbilitySlice::Present ([AbilitySlice](OHOS-AbilitySlice.md) & abilitySlice, const [Want](Want.md) & want ) ``` **Description:** Presents another ability slice, which can be an ability slice that is not started or an existing ability slice in the host ability. **Parameters:**

Name

Description

abilitySlice Indicates the target ability slice. This parameter cannot be null.
want Indicates the Want structure containing startup information about the target ability slice.
**Attention:** This function can be called only when both of the following conditions are met: - The host ability is in the **STATE\_ACTIVE** state. - The target ability slice is not started or destroyed. ## SetMainRoute\(\) ``` void OHOS::Ability::SetMainRoute (const std::string & entry) ``` **Description:** Sets the main route for this ability. The main route, also called main entry, refers to the default **[AbilitySlice](OHOS-AbilitySlice.md)** to present for this ability. This function should be called only on [Feature](Feature.md) Abilities. If this function is not called in the [OnStart\(const Want &want\)](AbilityKit.md#ga4d016d42397f33c7710db8544581c757) function for a [Feature](Feature.md) [Ability](OHOS-Ability.md), the [Feature](Feature.md) [Ability](OHOS-Ability.md) will fail to start. **Parameters:**

Name

Description

entry Indicates the main entry, which is the class name of the AbilitySlice instance to start.
## SetUIContent\(\) \[1/2\] ``` void OHOS::AbilitySlice::SetUIContent ([RootView](OHOS-RootView.md) * rootView) ``` **Description:** Sets the UI layout for the host ability of this ability slice. You can call **GetWindowRootView\(\)** to create a layout and add controls. **Parameters:**

Name

Description

rootView Indicates the pointer to the custom layout view you have created.
## SetUIContent\(\) \[2/2\] ``` void OHOS::Ability::SetUIContent ([RootView](OHOS-RootView.md) * rootView) ``` **Description:** Sets the UI layout for this ability. You can call **GetWindowRootView\(\)** to create a layout and add controls. **Parameters:**

Name

Description

rootView Indicates the pointer to the custom layout view you have created.
## SetWantData\(\) ``` bool SetWantData ([Want](Want.md) * want, const void * data, uint16_t dataLength ) ``` **Description:** Sets data to carry in a specified **[Want](Want.md)** object for starting a particular ability. **Parameters:**

Name

Description

want Indicates the pointer to the Want object to set.
data Indicates the pointer to the data to set.
dataLength Indicates the data length to set. The length must be the same as that of the data specified in data.
**Returns:** Returns **true** if the setting is successful; returns **false** otherwise. ## SetWantElement\(\) ``` bool SetWantElement ([Want](Want.md) * want, [ElementName](ElementName.md) element ) ``` **Description:** Sets the **element** variable for a specified **[Want](Want.md)** object. To start a specified ability, you should call this function to set the [ElementName](ElementName.md) required for starting the ability. **Parameters:**

Name

Description

want Indicates the pointer to the Want object to set.
element Indicates the ElementName containing information required for starting the ability.
**Returns:** Returns **true** if the setting is successful; returns **false** otherwise. ## SetWantSvcIdentity\(\) ``` bool SetWantSvcIdentity ([Want](Want.md) * want, SvcIdentity sid ) ``` **Description:** Sets the **sid** member variable for a specified **[Want](Want.md)** object. When starting an ability, you should call this function to set an **SvcIdentity** object if a callback needs to be invoked after the ability is started successfully. **Parameters:**

Name

Description

want Indicates the pointer to the Want object to set.
sid Indicates the SvcIdentity object to set.
**Returns:** Returns **true** if the setting is successful; returns **false** otherwise. ## StartAbility\(\) \[1/2\] ``` int OHOS::AbilityContext::StartAbility (const [Want](Want.md) & want) ``` **Description:** Starts an [Ability](OHOS-Ability.md) based on the specified [Want](Want.md) information. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the ability to start.
**Returns:** Returns **0** if the operation is successful; returns a non-zero value otherwise. ## StartAbility\(\) \[2/2\] ``` int StartAbility (const [Want](Want.md) * want) ``` **Description:** Starts an ability based on the specified [Want](Want.md) information. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the ability to start.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## StopAbility\(\) \[1/2\] ``` int OHOS::AbilityContext::StopAbility (const [Want](Want.md) & want) ``` **Description:** Stops an [Ability](OHOS-Ability.md) based on the specified [Want](Want.md) information. This function takes effect only on [Service](Service.md) abilities. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the ability to stop.
**Returns:** Returns **0** if the operation is successful; returns a non-zero value otherwise. ## StopAbility\(\) \[2/2\] ``` int StopAbility (const [Want](Want.md) * want) ``` **Description:** Stops an ability based on the specified [Want](Want.md) information. This function takes effect only on [Service](Service.md) abilities. **Parameters:**

Name

Description

want Indicates the pointer to the Want structure containing information about the ability to stop.
**Returns:** Returns **0** if this function is successfully called; returns another value otherwise. ## Terminate\(\) ``` void OHOS::AbilitySlice::Terminate () ``` **Description:** Destroys this ability slice. This ability slice can call this function to destroy itself. If the ability slice to destroy is the only running one in the host ability, the host ability will also be destroyed. Otherwise, the host ability will not be affected. ## TerminateAbility\(\) ``` int OHOS::AbilityContext::TerminateAbility () ``` **Description:** Destroys this [Ability](OHOS-Ability.md). This function can be called only by this ability. **Returns:** Returns **0** if the operation is successful; returns **-1** otherwise. ## WantParseUri\(\) ``` [Want](Want.md)* WantParseUri (const char * uri) ``` **Description:** Converts a specified character string into a **[Want](Want.md)** object. **Parameters:**

Name

Description

uri Indicates the pointer to the character string to convert.
**Returns:** Returns the pointer to the converted **[Want](Want.md)** object if the operation is successful; returns **nullptr** otherwise. ## WantToUri\(\) ``` const char* WantToUri ([Want](Want.md) want) ``` **Description:** Converts a specified **[Want](Want.md)** object into a character string. **Parameters:**

Name

Description

want Indicates the Want object to convert.
**Returns:** Returns the converted character string if the operation is successful; returns **nullptr** otherwise. ## **Variable ** ## OnAbilityConnectDone ``` void(* IAbilityConnection::OnAbilityConnectDone) ([ElementName](ElementName.md) *elementName, SvcIdentity *serviceSid, int resultCode, void *data) ``` **Description:** Called when a client is connected to a [Service](Service.md) ability. This callback is invoked to receive the connection result after a client is connected to a [Service](Service.md) ability. **Parameters:**

Name

Description

elementName Indicates the pointer to the information about the connected Service ability.
serviceSid Indicates the pointer to the remote proxy object of the Service ability.
resultCode Indicates the connection result code. The value 0 indicates a successful connection, and any other value indicates a connection failure.
data Indicates the pointer to the data stored during the connection.
## OnAbilityDisconnectDone ``` void(* IAbilityConnection::OnAbilityDisconnectDone) ([ElementName](ElementName.md) *elementName, int resultCode, void *data) ``` **Description:** Called after all connections to a [Service](Service.md) ability are disconnected. This callback is invoked to receive the disconnection result after the connected [Service](Service.md) ability crashes or is killed. If the [Service](Service.md) ability exits unexpectedly, all its connections are disconnected, and each ability previously connected to it will call **OnAbilityDisconnectDone\(ElementName \*elementName, int resultCode, void \*data\)**. **Parameters:**

Name

Description

elementName Indicates the pointer to the information about the disconnected Service ability.
resultCode Indicates the disconnection result code. The value 0 indicates a successful disconnection, and any other value indicates a disconnection failure.
data Indicates the pointer to the data stored during the connection.