harmony 鸿蒙@ohos.app.ability.abilityLifecycleCallback (AbilityLifecycleCallback)

  • 2025-06-12
  • 浏览 (3)

@ohos.app.ability.abilityLifecycleCallback (AbilityLifecycleCallback)

The AbilityLifecycleCallback module defines the callbacks to receive lifecycle changes of ApplicationContext.

NOTE

The initial APIs of this module are supported since API version 9. Newly added APIs will be marked with a superscript to indicate their earliest API version.

The APIs of this module can be used only in the stage model.

Modules to Import

import { AbilityLifecycleCallback } from '@kit.AbilityKit';

AbilityLifecycleCallback.onAbilityCreate

onAbilityCreate(ability: UIAbility): void

Called when the ability is created.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageCreate

onWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void

Called when the window stage of an ability is created.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageActive

onWindowStageActive(ability: UIAbility, windowStage: window.WindowStage): void

Called when the window stage of an ability gains focus.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageInactive

onWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void

Called when the window stage of an ability loses focus.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageDestroy

onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void

Called when the window stage of an ability is destroyed.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityDestroy

onAbilityDestroy(ability: UIAbility): void

Called when the ability is destroyed.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityForeground

onAbilityForeground(ability: UIAbility): void

Called when an ability is switched from the background to the foreground.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityBackground

onAbilityBackground(ability: UIAbility): void

Called when an ability is switched from the foreground to the background.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityContinue

onAbilityContinue(ability: UIAbility): void

Called when an ability is continued on another device.

Atomic service API: This API can be used in atomic services since API version 11.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillCreate12+

onAbilityWillCreate?(ability: UIAbility): void

Called before the onCreate callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageWillCreate12+

onWindowStageWillCreate?(ability: UIAbility, windowStage: window.WindowStage): void

Called before the onWindowStageCreate callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageWillDestroy12+

onWindowStageWillDestroy?(ability: UIAbility, windowStage: window.WindowStage): void

Called before the onWindowStageDestroy callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillForeground12+

onAbilityWillForeground?(ability: UIAbility): void

Called before the onForeground callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillDestroy12+

onAbilityWillDestroy?(ability: UIAbility): void

Called before the onDestroy callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillBackground12+

onAbilityWillBackground?(ability: UIAbility): void

Called before the onBackground callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWillNewWant12+

onWillNewWant?(ability: UIAbility): void

Called before the onNewWant callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onNewWant12+

onNewWant?(ability: UIAbility): void

Called after the onNewWant callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillContinue12+

onAbilityWillContinue?(ability: UIAbility): void

Called before the onContinue callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageWillRestore12+

onWindowStageWillRestore?(ability: UIAbility, windowStage: window.WindowStage): void

Called before the onWindowStageRestore callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onWindowStageRestore12+

onWindowStageRestore?(ability: UIAbility, windowStage: window.WindowStage): void

Called after the onWindowStageRestore callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.
windowStage window.WindowStage Yes WindowStage object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilityWillSaveState12+

onAbilityWillSaveState?(ability: UIAbility): void

Called before the onSaveState callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

AbilityLifecycleCallback.onAbilitySaveState12+

onAbilitySaveState?(ability: UIAbility): void

Called after the onSaveState callback of the UIAbility is triggered.

Atomic service API: This API can be used in atomic services since API version 12.

System capability: SystemCapability.Ability.AbilityRuntime.AbilityCore

Parameters

Name Type Mandatory Description
ability UIAbility Yes Ability object.

Example

See Usage of AbilityLifecycleCallback.

Usage of AbilityLifecycleCallback

Example GlobalContext.ts Global context

// Construct a singleton object.
export class GlobalContext {
  private constructor() {}
  private static instance: GlobalContext;
  private _objects = new Map<string, Object>();

  public static getContext(): GlobalContext {
    if (!GlobalContext.instance) {
      GlobalContext.instance = new GlobalContext();
    }
    return GlobalContext.instance;
  }

  getObject(value: string): Object|undefined {
    return this._objects.get(value);
  }

  setObject(key: string, objectClass: Object): void {
    this._objects.set(key, objectClass);
  }
}

MyFirstAbility.ts First ability of the application

import { AbilityLifecycleCallback, UIAbility } from '@kit.AbilityKit';
import { window } from '@kit.ArkUI';

// Import GlobalContext. Use the actual path declared.
import { GlobalContext } from '../GlobalContext';

// Declare the ability lifecycle callbacks. A listener can be registered in applicationContext only after all the callbacks are configured.
let abilityLifecycleCallback: AbilityLifecycleCallback = {
  onAbilityCreate(ability){
    console.log('AbilityLifecycleCallback onAbilityCreate.');
  },
  onWindowStageCreate(ability, windowStage){
    console.log('AbilityLifecycleCallback onWindowStageCreate.');
  },
  onWindowStageActive(ability, windowStage){
    console.log('AbilityLifecycleCallback onWindowStageActive.');
  },
  onWindowStageInactive(ability, windowStage){
    console.log('AbilityLifecycleCallback onWindowStageInactive.');
  },
  onWindowStageDestroy(ability, windowStage){
    console.log('AbilityLifecycleCallback onWindowStageDestroy.');
  },
  onAbilityDestroy(ability){
    console.log('AbilityLifecycleCallback onAbilityDestroy.');
  },
  onAbilityForeground(ability){
    console.log('AbilityLifecycleCallback onAbilityForeground.');
  },
  onAbilityBackground(ability){
    console.log('AbilityLifecycleCallback onAbilityBackground.');
  },
  onAbilityContinue(ability){
    console.log('AbilityLifecycleCallback onAbilityContinue.');
  },
  onNewWant(ability) {
    console.log('AbilityLifecycleCallback onNewWant');
  },
  onWillNewWant(ability) {
    console.log('AbilityLifecycleCallback onWillNewWant');
  },
  onAbilityWillCreate(ability) {
    console.log('AbilityLifecycleCallback onAbilityWillCreate');
  },
  onWindowStageWillCreate(ability, windowStage) {
    console.log('AbilityLifecycleCallback onWindowStageWillCreate');
  },
  onWindowStageWillDestroy(ability, windowStage) {
    console.log('AbilityLifecycleCallback onWindowStageWillDestroy');
  },
  onAbilityWillDestroy(ability) {
    console.log('AbilityLifecycleCallback onAbilityWillDestroy');
  },
  onAbilityWillForeground(ability) {
    console.log('AbilityLifecycleCallback onAbilityWillForeground');
  },
  onAbilityWillBackground(ability) {
    console.log('AbilityLifecycleCallback onAbilityWillBackground');
  },
  onAbilityWillContinue(ability: UIAbility) {
    console.log('AbilityLifecycleCallback onAbilityWillContinue.');
  },
  onWindowStageWillRestore(ability: UIAbility, windowStage: window.WindowStage) {
    console.log('AbilityLifecycleCallback onWindowStageWillRestore.');
  },
  onWindowStageRestore(ability: UIAbility, windowStage: window.WindowStage) {
    console.log('AbilityLifecycleCallback onWindowStageRestore.');
  },
  onAbilityWillSaveState(ability: UIAbility) {
    console.log('AbilityLifecycleCallback onAbilityWillSaveState.');
  },
  onAbilitySaveState(ability: UIAbility) {
    console.log('AbilityLifecycleCallback onAbilitySaveState.');
  }
};

export default class MyFirstAbility extends UIAbility {
  onCreate() {
    console.log('MyAbilityStage onCreate');
    // 1. Obtain applicationContext through the context property.
    let applicationContext = this.context.getApplicationContext();
    // 2. Register the listener for the ability lifecycle changes through the applicationContext object.
    try {
      let lifecycleId = applicationContext.on('abilityLifecycle', abilityLifecycleCallback);
      GlobalContext.getContext().setObject("lifecycleId", lifecycleId);
      console.log(`registerAbilityLifecycleCallback lifecycleId: ${GlobalContext.getContext().getObject('lifecycleId')}`);
    } catch (paramError) {
      console.error(`error: ${paramError.code}, ${paramError.message}`);
    }
  }
}

MySecondAbility.ts Second ability of the application

import { UIAbility } from '@kit.AbilityKit';

// Import GlobalContext. Use the actual path declared.
import { GlobalContext } from '../GlobalContext';
import { BusinessError } from '@ohos.base';

export default class MySecondAbility extends UIAbility {
  onDestroy() {
    let applicationContext = this.context.getApplicationContext();
    let lifecycleId = GlobalContext.getContext().getObject("lifecycleId") as number;
    try {
    // 3. Deregister the listener for the ability lifecycle changes through the applicationContext object.
      applicationContext.off('abilityLifecycle', lifecycleId, (error) => {
        if (error && error.code !== 0) {
          console.error(`unregisterAbilityLifecycleCallback fail, error: ${JSON.stringify(error)}`);
        } else {
          console.log('unregisterAbilityLifecycleCallback success.');
        }
      });
    } catch (paramError) {
      console.error(`error: ${(paramError as BusinessError).code}, ${(paramError as BusinessError).message}`);
    }
  }
}

你可能感兴趣的鸿蒙文章

harmony 鸿蒙Ability Kit

harmony 鸿蒙AbilityAccessControl

harmony 鸿蒙AbilityBase

harmony 鸿蒙AbilityBase_Element

harmony 鸿蒙AbilityRuntime

harmony 鸿蒙bundle

harmony 鸿蒙OH_NativeBundle_ApplicationInfo

harmony 鸿蒙OH_NativeBundle_ElementName

harmony 鸿蒙ability_access_control.h

harmony 鸿蒙ability_base_common.h

0  赞