在KaihongOS中,EntryAbility.ets 是一个关键的文件,它定义了应用的入口Ability。 以下是EntryAbility.ets中涉及的生命周期和功能。
1. Create状态:
- onCreate():当UIAbility实例创建完成时触发,系统会调用此回调。开发者可以在该回调中进行页面初始化操作,例如变量定义、资源加载等,用于后续的UI展示。
2. WindowStageCreate状态:
- onWindowStageCreate(windowStage: window.WindowStage):在UIAbility实例创建完成之后,在进入Foreground之前,系统会创建一个WindowStage。WindowStage创建完成后会进入此回调,开发者可以在该回调中设置UI加载、设置WindowStage的事件订阅。例如,通过windowStage.loadContent(‘pages/Index’, (err) => {…})自动加载pages/Index.ets页面。
3. WindowStageDestroy状态:
- onWindowStageDestroy():在UIAbility实例销毁之前,则会先进入此回调。开发者可以在此回调中释放与UI相关的资源。
4. Foreground状态:
- onForeground():当UIAbility实例切换至前台时触发,执行此回调。开发者可以在onForeground()回调中申请系统需要的资源,例如开启定位功能。
5. Background状态:
- onBackground():当UIAbility实例切换至后台时触发,执行此回调。开发者可以在此回调中执行一些操作,比如保存当前的状态或者释放一些资源。
6. Destroy状态:
- onDestroy():当UIAbility实例即将被销毁时,会进入Destroy状态。系统会调用此回调,开发者可以在这里执行清理操作,比如停止后台任务、释放资源等。
这些状态和回调方法为开发者提供了Ability生命周期的管理能力,使得开发者可以根据Ability的不同状态执行相应的操作,以提供更好的用户体验和资源管理。
在一个新创建的项目中,可以看到一个默认的EntryAbility.ets文件,该文件定义了Ability的生命周期。
// EntryAbility.ets
import AbilityConstant from '@ohos.app.ability.AbilityConstant';
import hilog from '@ohos.hilog';
import UIAbility from '@ohos.app.ability.UIAbility';
import Want from '@ohos.app.ability.Want';
import window from '@ohos.window';
export default class EntryAbility extends UIAbility {
onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
}
onDestroy(): void {
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
}
onWindowStageCreate(windowStage: window.WindowStage): void {
// Main window is created, set main page for this ability
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
windowStage.loadContent('pages/Index', (err) => {
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.');
});
}
onWindowStageDestroy(): void {
// Main window is destroyed, release UI related resources
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
}
onForeground(): void {
// Ability has brought to foreground
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
}
onBackground(): void {
// Ability has back to background
hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
}
}