# @ohos.app.appstartup.startupManager The startupManager module provides APIs for AppStartup to manage startup tasks. It can be called only in the main thread. > **NOTE** > > The initial APIs of this module are supported since API version 12. 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 ```ts import { startupManager } from '@kit.AbilityKit'; ``` ## startupManager.run run(startupTasks: Array\, config?: StartupConfig): Promise\ Runs AppStartup. **System capability**: SystemCapability.Ability.AppStartup **Parameters** | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | startupTasks | Array\ | Yes | Array of class names of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup tasks to be executed. | | config | [StartupConfig](./js-apis-app-appstartup-startupConfig.md) | No | Timeout for starting AppStartup and startup task listener. | **Return value** | Type | Description | | -------- | -------- | | Promise\ | Promise that returns no value. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). | ID | Error Message | | ------- | -------------------------------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | | 16000050 | Internal error. | | 28800001 | Startup task or its dependency not found. | | 28800002 | The startup tasks have circular dependencies. | | 28800003 | An error occurred while running the startup tasks. | | 28800004 | Running startup tasks timeout. | **Example** ```ts import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { BusinessError } from '@kit.BasicServicesKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); let startParams = ['StartupTask_001']; try { // Manually call the run method. startupManager.run(startParams).then(() => { console.log('StartupTest startupManager run then, startParams = '); }).catch((error: BusinessError) => { console.info("StartupTest promise catch error, error = " + JSON.stringify(error)); console.info("StartupTest promise catch error, startParams = " + JSON.stringify(startParams)); }) } catch (error) { let errMsg = JSON.stringify(error); let errCode: number = error.code; console.log('Startup catch error , errCode= ' + errCode); console.log('Startup catch error ,error= ' + errMsg); } } // ... } ``` ## startupManager.removeAllStartupTaskResults removeAllStartupTaskResults(): void Removes all startup task results. **System capability**: SystemCapability.Ability.AppStartup **Example** ```ts import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); startupManager.run(['StartupTask_001']).then(() => { console.info("StartupTask_001 init successful"); }) } onWindowStageCreate(windowStage: window.WindowStage) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); startupManager.removeAllStartupTaskResults(); // Remove all startup task results. windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } } ``` ## startupManager.getStartupTaskResult getStartupTaskResult(startupTask: string): Object Obtains the result of a startup task. **System capability**: SystemCapability.Ability.AppStartup **Parameters** | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | startupTask | string | Yes | Class name of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup task. All the startup tasks must implement the [StartupTask](js-apis-app-appstartup-startupTask.md) API. | **Return value** | Type | Description | | -------- | -------- | | Object | Result of the startup task. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID | Error Message | | ------- | -------------------------------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | **Example** ```ts import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); startupManager.run(['StartupTask_001']).then(() => { console.info("StartupTask_001 init successful"); }) } onWindowStageCreate(windowStage: window.WindowStage) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); let result = startupManager.getStartupTaskResult('StartupTask_001'); // Manually obtain the startup task result. console.info("getStartupTaskResult result = " + result); windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } } ``` ## startupManager.isStartupTaskInitialized isStartupTaskInitialized(startupTask: string): boolean Checks whether a startup task is initialized. **System capability**: SystemCapability.Ability.AppStartup **Parameters** | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | startupTask | string | Yes | Class name of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup task. | **Return value** | Type | Description | | -------- | -------- | | boolean | **true**: The startup task is initialized.
**false**: The startup task is not initialized. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID | Error Message | | ------- | -------------------------------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | **Example** ```ts import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); startupManager.run(['StartupTask_001']).then(() => { console.info("StartupTask_001 init successful"); }) } onWindowStageCreate(windowStage: window.WindowStage) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); let result = startupManager.isStartupTaskInitialized('StartupTask_001'); if (result) { console.info("StartupTask_001 init successful"); } else { console.info("StartupTask_001 uninitialized"); } windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } } ``` ## startupManager.removeStartupTaskResult removeStartupTaskResult(startupTask: string): void Removes the initialization result of a startup task. **System capability**: SystemCapability.Ability.AppStartup **Parameters** | Name | Type | Mandatory | Description | | -------- | -------- | -------- | -------- | | startupTask | string | Yes | Class name of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup task. | **Error codes** For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). | ID | Error Message | | ------- | -------------------------------- | | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | **Example** ```ts import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; import { window } from '@kit.ArkUI'; import { hilog } from '@kit.PerformanceAnalysisKit'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); startupManager.run(['StartupTask_001']).then(() => { console.info("StartupTask_001 init successful"); }) } onWindowStageCreate(windowStage: window.WindowStage) { hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); startupManager.removeStartupTaskResult('StartupTask_001'); windowStage.loadContent('pages/Index', (err, data) => { if (err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); }); } } ```