1# @ohos.app.ability.abilityDelegatorRegistry (AbilityDelegatorRegistry)
2
3**AbilityDelegatorRegistry**, a module of the automatic test framework, is used to obtain [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) and [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) objects. **AbilityDelegator** provides APIs for creating [AbilityMonitor](../apis-ability-kit/js-apis-inner-application-abilityMonitor.md#abilitymonitor-1) objects, which can be used to listen for ability lifecycle changes. **AbilityDelegatorArgs** provides APIs for obtaining test parameters.
4
5> **NOTE**
6>
7> The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.
8>
9> The APIs of this module can be used only in <!--RP1-->[arkxtest](../../application-test/arkxtest-guidelines.md)<!--RP1End-->.
10
11## Modules to Import
12
13```ts
14import { abilityDelegatorRegistry } from '@kit.TestKit';
15```
16
17## AbilityLifecycleState
18
19Enumerates the ability lifecycle states. It can be used in [getAbilityState(ability)](js-apis-inner-application-abilityDelegator.md#getabilitystate9) of [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) to return different ability lifecycle states.
20
21**Atomic service API**: This API can be used in atomic services since API version 11.
22
23**System capability**: SystemCapability.Ability.AbilityRuntime.Core
24
25| Name         | Value  | Description                       |
26| ------------- | ---- | --------------------------- |
27| UNINITIALIZED | 0    | The ability is in an invalid state.  |
28| CREATE        | 1    | The ability is created.|
29| FOREGROUND    | 2    | The ability is running in the foreground.  |
30| BACKGROUND    | 3    | The ability is running in the background.  |
31| DESTROY       | 4    | The ability is destroyed.|
32
33## AbilityDelegatorRegistry.getAbilityDelegator
34
35getAbilityDelegator(): AbilityDelegator
36
37Obtains an [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) object.
38
39**Atomic service API**: This API can be used in atomic services since API version 11.
40
41**System capability**: SystemCapability.Ability.AbilityRuntime.Core
42
43**Return value**
44
45| Type                                                        | Description                                                        |
46| ------------------------------------------------------------ | ------------------------------------------------------------ |
47| [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) | [AbilityDelegator](js-apis-inner-application-abilityDelegator.md) object, which can be used to schedule the functionalities of the test framework.|
48
49**Example**
50
51```ts
52import { abilityDelegatorRegistry } from '@kit.TestKit';
53import { Want } from '@kit.AbilityKit';
54
55let abilityDelegator = abilityDelegatorRegistry.getAbilityDelegator();
56let want: Want = {
57  bundleName: 'com.example.myapplication',
58  abilityName: 'EntryAbility'
59};
60
61abilityDelegator.startAbility(want, (err) => {
62  if (err) {
63    console.error(`Failed start ability, error: ${JSON.stringify(err)}`);
64  } else {
65    console.log('Success start ability.');
66  }
67});
68```
69
70## AbilityDelegatorRegistry.getArguments
71
72getArguments(): AbilityDelegatorArgs
73
74Obtains an [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) object.
75
76**Atomic service API**: This API can be used in atomic services since API version 11.
77
78**System capability**: SystemCapability.Ability.AbilityRuntime.Core
79
80**Return value**
81
82| Type                                                        | Description                                                        |
83| ------------------------------------------------------------ | ------------------------------------------------------------ |
84| [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) | [AbilityDelegatorArgs](js-apis-inner-application-abilityDelegatorArgs.md) object, which can be used to obtain test parameters.|
85
86**Example**
87
88```ts
89import { abilityDelegatorRegistry } from '@kit.TestKit';
90
91let args = abilityDelegatorRegistry.getArguments();
92console.info(`getArguments bundleName: ${args.bundleName}`);
93console.info(`getArguments parameters: ${JSON.stringify(args.parameters)}`);
94console.info(`getArguments testCaseNames: ${args.testCaseNames}`);
95console.info(`getArguments testRunnerClassName: ${args.testRunnerClassName}`);
96```
97