1# @ohos.app.appstartup.startupManager 2 3The startupManager module provides APIs for AppStartup to manage startup tasks. It can be called only in the main thread. 4 5> **NOTE** 6> 7> 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. 8> 9> The APIs of this module can be used only in the stage model. 10 11## Modules to Import 12 13```ts 14import { startupManager } from '@kit.AbilityKit'; 15``` 16 17## startupManager.run 18run(startupTasks: Array\<string\>, config?: StartupConfig): Promise\<void\> 19 20Runs AppStartup. 21 22**System capability**: SystemCapability.Ability.AppStartup 23 24**Parameters** 25 26 | Name | Type | Mandatory | Description | 27 | -------- | -------- | -------- | -------- | 28 | startupTasks | Array\<string\> | Yes | Array of class names of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup tasks to be executed. | 29 | config | [StartupConfig](./js-apis-app-appstartup-startupConfig.md) | No | Timeout for starting AppStartup and startup task listener. | 30 31**Return value** 32 33| Type | Description | 34| -------- | -------- | 35| Promise\<void\> | Promise that returns no value. | 36 37**Error codes** 38 39For details about the error codes, see [Universal Error Codes](../errorcode-universal.md) and [Ability Error Codes](errorcode-ability.md). 40 41 | ID | Error Message | 42 | ------- | -------------------------------- | 43 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 44 | 16000050 | Internal error. | 45 | 28800001 | Startup task or its dependency not found. | 46 | 28800002 | The startup tasks have circular dependencies. | 47 | 28800003 | An error occurred while running the startup tasks. | 48 | 28800004 | Running startup tasks timeout. | 49 50**Example** 51 52```ts 53import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; 54import { hilog } from '@kit.PerformanceAnalysisKit'; 55import { BusinessError } from '@kit.BasicServicesKit'; 56 57export default class EntryAbility extends UIAbility { 58 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { 59 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 60 let startParams = ['StartupTask_001']; 61 try { 62 // Manually call the run method. 63 startupManager.run(startParams).then(() => { 64 console.log('StartupTest startupManager run then, startParams = '); 65 }).catch((error: BusinessError) => { 66 console.info("StartupTest promise catch error, error = " + JSON.stringify(error)); 67 console.info("StartupTest promise catch error, startParams = " 68 + JSON.stringify(startParams)); 69 }) 70 } catch (error) { 71 let errMsg = JSON.stringify(error); 72 let errCode: number = error.code; 73 console.log('Startup catch error , errCode= ' + errCode); 74 console.log('Startup catch error ,error= ' + errMsg); 75 } 76 } 77 // ... 78} 79``` 80 81## startupManager.removeAllStartupTaskResults 82 83removeAllStartupTaskResults(): void 84 85Removes all startup task results. 86 87**System capability**: SystemCapability.Ability.AppStartup 88 89**Example** 90 91```ts 92import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; 93import { window } from '@kit.ArkUI'; 94import { hilog } from '@kit.PerformanceAnalysisKit'; 95 96export default class EntryAbility extends UIAbility { 97 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { 98 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 99 startupManager.run(['StartupTask_001']).then(() => { 100 console.info("StartupTask_001 init successful"); 101 }) 102 } 103 104 onWindowStageCreate(windowStage: window.WindowStage) { 105 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 106 startupManager.removeAllStartupTaskResults(); // Remove all startup task results. 107 108 windowStage.loadContent('pages/Index', (err, data) => { 109 if (err.code) { 110 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 111 return; 112 } 113 hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 114 }); 115 } 116} 117``` 118 119 120## startupManager.getStartupTaskResult 121 122getStartupTaskResult(startupTask: string): Object 123 124Obtains the result of a startup task. 125 126**System capability**: SystemCapability.Ability.AppStartup 127 128**Parameters** 129 130 | Name | Type | Mandatory | Description | 131 | -------- | -------- | -------- | -------- | 132 | 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. | 133 134**Return value** 135 136 | Type | Description | 137 | -------- | -------- | 138 | Object | Result of the startup task. | 139 140**Error codes** 141 142For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 143 144 | ID | Error Message | 145 | ------- | -------------------------------- | 146 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 147 148**Example** 149 150```ts 151import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; 152import { window } from '@kit.ArkUI'; 153import { hilog } from '@kit.PerformanceAnalysisKit'; 154 155export default class EntryAbility extends UIAbility { 156 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { 157 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 158 startupManager.run(['StartupTask_001']).then(() => { 159 console.info("StartupTask_001 init successful"); 160 }) 161 } 162 163 onWindowStageCreate(windowStage: window.WindowStage) { 164 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 165 let result = startupManager.getStartupTaskResult('StartupTask_001'); // Manually obtain the startup task result. 166 console.info("getStartupTaskResult result = " + result); 167 windowStage.loadContent('pages/Index', (err, data) => { 168 if (err.code) { 169 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 170 return; 171 } 172 hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 173 }); 174 } 175} 176``` 177 178 179## startupManager.isStartupTaskInitialized 180 181isStartupTaskInitialized(startupTask: string): boolean 182 183Checks whether a startup task is initialized. 184 185**System capability**: SystemCapability.Ability.AppStartup 186 187**Parameters** 188 189 | Name | Type | Mandatory | Description | 190 | -------- | -------- | -------- | -------- | 191 | startupTask | string | Yes | Class name of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup task. | 192 193**Return value** 194 195 | Type | Description | 196 | -------- | -------- | 197 | boolean | **true**: The startup task is initialized.<br>**false**: The startup task is not initialized. | 198 199**Error codes** 200 201For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 202 203 | ID | Error Message | 204 | ------- | -------------------------------- | 205 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 206 207**Example** 208 209```ts 210import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; 211import { window } from '@kit.ArkUI'; 212import { hilog } from '@kit.PerformanceAnalysisKit'; 213 214export default class EntryAbility extends UIAbility { 215 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { 216 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 217 startupManager.run(['StartupTask_001']).then(() => { 218 console.info("StartupTask_001 init successful"); 219 }) 220 } 221 222 onWindowStageCreate(windowStage: window.WindowStage) { 223 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 224 let result = startupManager.isStartupTaskInitialized('StartupTask_001'); 225 if (result) { 226 console.info("StartupTask_001 init successful"); 227 } else { 228 console.info("StartupTask_001 uninitialized"); 229 } 230 231 windowStage.loadContent('pages/Index', (err, data) => { 232 if (err.code) { 233 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 234 return; 235 } 236 hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 237 }); 238 } 239} 240``` 241 242## startupManager.removeStartupTaskResult 243 244removeStartupTaskResult(startupTask: string): void 245 246Removes the initialization result of a startup task. 247 248**System capability**: SystemCapability.Ability.AppStartup 249 250**Parameters** 251 252 | Name | Type | Mandatory | Description | 253 | -------- | -------- | -------- | -------- | 254 | startupTask | string | Yes | Class name of the [StartupTask](js-apis-app-appstartup-startupTask.md) API implemented by the startup task. | 255 256**Error codes** 257 258For details about the error codes, see [Universal Error Codes](../errorcode-universal.md). 259 260 | ID | Error Message | 261 | ------- | -------------------------------- | 262 | 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. | 263 264**Example** 265 266```ts 267import { AbilityConstant, UIAbility, Want, startupManager } from '@kit.AbilityKit'; 268import { window } from '@kit.ArkUI'; 269import { hilog } from '@kit.PerformanceAnalysisKit'; 270 271export default class EntryAbility extends UIAbility { 272 onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { 273 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); 274 startupManager.run(['StartupTask_001']).then(() => { 275 console.info("StartupTask_001 init successful"); 276 }) 277 } 278 279 onWindowStageCreate(windowStage: window.WindowStage) { 280 hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); 281 startupManager.removeStartupTaskResult('StartupTask_001'); 282 283 windowStage.loadContent('pages/Index', (err, data) => { 284 if (err.code) { 285 hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); 286 return; 287 } 288 hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); 289 }); 290 } 291} 292``` 293