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

鸿蒙开发语言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的代码如下:

typescript 复制代码
/**
 * 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');
  }
}
相关推荐
clear sky .13 分钟前
[freertos源码阅读]task.c任务篇
c语言·开发语言
OH_TPC33 分钟前
【鸿蒙优选三方库】@ohos/ijkplayer:在鸿蒙上像 B 站一样流畅播视频
华为·音视频·harmonyos·鸿蒙
XR12345678833 分钟前
工业园区整体组网,方案对比怎么选?
开发语言·php
东东最爱敲键盘38 分钟前
day9.C++多态之虚函数
开发语言·c++
码云数智-园园1 小时前
类似小鹅通的知识付费小程序平台有哪些
开发语言
snow@li1 小时前
Java:跨平台原理与JDK、JRE、JVM全景深度解析
java·开发语言·jvm
Livia要学习1 小时前
Python闭包
开发语言·jvm·python
覆东流1 小时前
2.Java程序基础
java·开发语言·后端
ttwuai1 小时前
Go 后台定时任务启停不生效怎么办?先查调度同步链路
开发语言·后端·golang
小的~~1 小时前
ThreadLocal 、InheritableThreadLocal 与 TransmittableThreadLocal 的进阶指南
java·开发语言