鸿蒙开发语言ArkTS--Ability中的生命周期

发布时间:2024年01月18日

鸿蒙开发语言ArkTS–Ability中的生命周期

在ArkTS语言中,这是一个在ArkTS中定义Ability生命周期的示例。

Ability的生命周期:

  1. onCreate(want, launchParam):在UI创建后执行的函数。在这个阶段,您可以执行初始化操作,设置初始状态,并且可以注册监听器等。

  2. onDestroy():在UI销毁后执行的函数。在这个阶段,您可以执行一些清理操作,释放资源等。

  3. onWindowStageCreate(windowStage: window.WindowStage):在主窗口创建后执行的函数。在这个阶段,您可以设置主页面,并且可以进行一些UI相关的操作。

  4. onWindowStageDestroy():在主窗口销毁后执行的函数。在这个阶段,您可以释放与UI相关的资源。

  5. onForeground():在Ability进入前台后执行的函数。在这个阶段,您可以执行一些与前台显示相关的操作。

  6. onBackground():在Ability切换到后台后执行的函数。在这个阶段,您可以执行一些与后台运行相关的操作。

总的来说,这些函数定义了Ability的整个生命周期,从创建到销毁,以及前台和后台运行时的状态变化。我们开发人员可以在这些函数中编写相应的逻辑,以实现对应生命周期阶段的操作。

整体EntryAbility.ets的代码如下:

/**
 * Ability的生命周期
 */
export default class EntryAbility extends UIAbility {
  /**
   * UI创建后执行
   * @param want
   * @param launchParam
   */
  onCreate(want, launchParam) {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate');
  }
  /**
   * UI销毁后执行
   */
  onDestroy() {
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy');
  }
  /**
   * 主窗口创建执行
   * @param windowStage
   */
  onWindowStageCreate(windowStage: window.WindowStage) {
    // Main window is created, set main page for this ability
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate');
    const userSetting = new UserSettingClass(this.context)

    //正常情况,需要在这里获取用户广告设置,然后根据设置,决定是否需要启动设置广告页面(假如需要弄的话)
   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) ?? '');
    });
  }

  onWindowStageDestroy() {
    // Main window is destroyed, release UI related resources
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy');
  }
  /**
   * Ability进入前台之后执行
   */
  onForeground() {
    // Ability has brought to foreground
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground');
  }
  /**
   * Ability切换后台台之后执行
   */
  onBackground() {
    // Ability has back to background
    hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground');
  }
}
文章来源:https://blog.csdn.net/m0_63144319/article/details/135665204
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。