往期鸿蒙全套实战文章必看:(文中附带全栈鸿蒙学习资料)
@ohos.app.appstartup.startupManager
本模块提供应用启动框架管理启动任务的能力,只能在主线程调用。
说明
本模块首批接口从API version 12开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。
本模块接口仅可在Stage模型下使用。
导入模块
import { startupManager } from '@kit.AbilityKit';
startupManager.run
run(startupTasks: Array<string>, config?: StartupConfig): Promise<void>
执行启动框架。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AppStartup
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startupTasks | Array<string> | 是 | 表明准备执行的启动任务所实现的StartupTask接口的类名称数组。 |
| config | StartupConfig | 否 | 启动框架超时时间与启动任务监听器配置。 |
返回值:
| 类型 | 说明 |
|---|---|
| Promise<void> | Promise对象。无返回结果的Promise对象。 |
错误码:
以下错误码详细介绍
| 错误码ID | 错误信息 |
|---|---|
| 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. |
示例::
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 {
// 手动调用run方法
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
删除所有启动任务结果。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AppStartup
示例::
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(); // 移除所有启动任务结果
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
获得指定的启动任务结果。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AppStartup
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startupTask | string | 是 | 启动任务实现StartupTask接口的文件名,所有启动任务都需要实现StartupTask接口的方法。 |
返回值:
| 类型 | 说明 |
|---|---|
| Object | 指定启动任务的结果。 |
错误码:
以下错误码详细介绍
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
示例::
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'); // 手动获取启动任务结果
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
获取指定启动任务是否已初始化。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AppStartup
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startupTask | string | 是 | 启动任务实现StartupTask接口的类名称。 |
返回值:
| 类型 | 说明 |
|---|---|
| boolean | 返回布尔值,true表示该启动任务已执行完成,false表示该启动任务尚未执行完成。 |
错误码:
以下错误码详细介绍
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
示例::
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
删除指定初始化结果。
系统能力:以下各项对应的系统能力均为SystemCapability.Ability.AppStartup
参数:
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
| startupTask | string | 是 | 启动任务所实现StartupTask接口的类名称。 |
错误码:
以下错误码详细介绍
| 错误码ID | 错误信息 |
|---|---|
| 401 | Parameter error. Possible causes: 1. Mandatory parameters are left unspecified; 2. Incorrect parameter types. |
示例::
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) ?? '');
});
}
}


696

被折叠的 条评论
为什么被折叠?



