鸿蒙原生应用/元服务开发-Stage模型能力接口(三)

news/2024/7/21 12:30:33 标签: 华为, HarmonyOS

一、说明
AbilityLifecycleCallback模块提供应用上下文ApplicationContext的生命周期发生变化时触发相应回调的能力,包括onAbilityCreate、onWindowStageCreate、onWindowStageActive、onWindowStageInactive、onWindowStageDestroy、onAbilityDestroy、onAbilityForeground、onAbilityBackground、onAbilityContinue方法。本模块首批接口从API version 9 开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口仅可在Stage模型下使用。
二、导入模块
import AbilityLifecycleCallback from ‘@ohos.app.ability.AbilityLifecycleCallback’;
1.AbilityLifecycleCallback.onAbilityCreate
onAbilityCreate(ability: UIAbility): void;
注册监听应用上下文的生命周期后,在ability创建时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onAbilityCreate(ability){
console.log(‘AbilityLifecycleCallback onAbilityCreate.’);
}
};
2.AbilityLifecycleCallback.onWindowStageCreate
onWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage创建时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onAbilityCreate(ability){
console.log(‘AbilityLifecycleCallback onAbilityCreate.’);
}
};
3.AbilityLifecycleCallback.onWindowStageCreate
onWindowStageCreate(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage创建时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onWindowStageActive(ability, windowStage){
console.log(‘AbilityLifecycleCallback onWindowStageActive.’);
}
};
4.AbilityLifecycleCallback.onWindowStageInactive
onWindowStageInactive(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage失焦时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onWindowStageInactive(ability, windowStage){
console.log(‘AbilityLifecycleCallback onWindowStageInactive.’);
}
};
5.AbilityLifecycleCallback.onWindowStageDestroy
onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onWindowStageInactive(ability, windowStage){
console.log(‘AbilityLifecycleCallback onWindowStageInactive.’);
}
};
6.AbilityLifecycleCallback.onWindowStageDestroy
onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onWindowStageInactive(ability, windowStage){
console.log(‘AbilityLifecycleCallback onWindowStageInactive.’);
}
};
7.AbilityLifecycleCallback.onWindowStageDestroy
onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onWindowStageInactive(ability, windowStage){
console.log(‘AbilityLifecycleCallback onWindowStageInactive.’);
}
};
8.AbilityLifecycleCallback.onWindowStageDestroy
onWindowStageDestroy(ability: UIAbility, windowStage: window.WindowStage): void;
注册监听应用上下文的生命周期后,在windowStage销毁时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onAbilityBackground(ability){
console.log(‘AbilityLifecycleCallback onAbilityBackground.’);
}
};
9.AbilityLifecycleCallback.onAbilityContinue
onAbilityContinue(ability: UIAbility): void;
注册监听应用上下文的生命周期后,在ability迁移时触发回调。
系统能力:SystemCapability.Ability.AbilityRuntime.AbilityCore
参数:
 

鸿蒙原生应用/元服务开发-Stage模型能力接口(三)-鸿蒙开发者社区


示例:
let abilityLifecycleCallback = {
onAbilityContinue(ability){
console.log(‘AbilityLifecycleCallback onAbilityContinue.’);
}
};
AbilityLifecycleCallback使用
示例:
MyFirstAbility.ts
import AbilityLifecycleCallback from ‘@ohos.app.ability.AbilityLifecycleCallback’;
import AbilityStage from ‘@ohos.app.ability.AbilityStage’;
import UIAbility from ‘@ohos.app.ability.UIAbility’;

// 声明ability生命周期回调,需配置所有回调后才可以在applicationContext注册
let 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.’);
}
};

export default class MyFirstAbility extends UIAbility {
onCreate() {
console.log(‘MyAbilityStage onCreate’);
// 1.通过context属性获取applicationContext
let applicationContext = this.context.getApplicationContext();
// 2.通过applicationContext注册监听应用内生命周期
try {
globalThis.lifecycleId = applicationContext.on(‘abilityLifecycle’, abilityLifecycleCallback);
console.log(‘registerAbilityLifecycleCallback lifecycleId: ${globalThis.lifecycleId}’);
} catch (paramError) {
console.log(‘error: ’ + paramError.code + ’ ,’ + paramError.message);
}
}
}
MySecondAbility.ts
import UIAbility from ‘@ohos.app.ability.UIAbility’;

export default class MySecondAbility extends UIAbility {
onDestroy() {
let applicationContext = this.context.getApplicationContext();
// 3.通过applicationContext注销监听应用内生命周期
applicationContext.off(‘abilityLifecycle’, globalThis.lifecycleId, (error) => {
if (error.code != 0) {
console.log('unregisterAbilityLifecycleCallback failed, error: ’ + JSON.stringify(error));
} else {
console.log(‘unregisterAbilityLifecycleCallback success.’);
}
});
}
}

本文根据HarmonyOS官方开发文档整理


http://www.niftyadmin.cn/n/5267065.html

相关文章

C++ Qt开发:ToolBar与MenuBar菜单组件

Qt 是一个跨平台C图形界面开发库,利用Qt可以快速开发跨平台窗体应用程序,在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置,实现图形化开发极大的方便了开发效率,本章将重点介绍ToolBar工具栏组件以及与之类似的MenuBar菜单…

GEE——使用cart机器学习方法对Landsat影像条带修复以NDVI和NDWI为例(全代码)

简介 之前发表了两篇关于影像修复的文章,并且制作了APP,大家可以去看以下的两篇博客来了解具体的研究内容和整个方法的有效性: Google Earth Engine APP——影像条带色差、色调不均匀等现象解决方案Landsat5 NDWI Image Restoration APP_ndwi不能识别泛红水体怎么办-CSDN博…

Apache Kafka JNDI注入注入漏洞(CVE-2023-25194)

基于Vulhub搭建的环境 一、漏洞概述 Apache Kafka是一个开源分布式消息队列,Kafka clients是相对应的Java客户端。 在版本3.3.2及以前,Apache Kafka clients中存在一处JNDI注入漏洞。如果攻击者在连接的时候可以控制属性的值为,则可以发起…

Initial用法-FPGA入门3

Initial是什么 FPGA Initial是一种在FPGA中进行初始化的方法。在FPGA设备上,初始值决定了逻辑门的状态和寄存器的初始值。FPGA Initial可以通过设置初始值来控制电路在上电后的初始状态。 Initial的作用 2.1,控制电路启动时的初始状态 通过设置FPGA Ini…

基于SpringBoot和微信小程序的农场信息管理系统

文章目录 项目介绍主要功能截图:部分代码展示设计总结项目获取方式🍅 作者主页:超级无敌暴龙战士塔塔开 🍅 简介:Java领域优质创作者🏆、 简历模板、学习资料、面试题库【关注我,都给你】 🍅文末获取源码联系🍅 项目介绍 基于SpringBoot和微信小程序的农场信息管…

关于chatgpt一点肤浅认识

001 词向量 用数字向量表示单词。它是计算机更好地理解单词 1、预训练 – 就是先训练一个模型,用于以后特定任务的微调,比如将 BERT这个模型用于特定的NLP任务,比如情感分析 2、one-hot: 用只有一个元素是1,其他是0的向量表示物体…

前端面试CSS知识点

目录 前言 一、块级元素、行内元素和行内块元素的区别 1. 块级元素-display:block 1.1.1 常见的块级元素 1.1.2 块级元素的特点 2. 行内元素-display-inline 2.1.1 常见的行内元素 2.1.2 行内元素的特点 3. 行内块元素-display:inline-block 3.1.1 常见的行内块元素 3.1.2 行内…

【生物信息学】scRNA-seq数据分析(一):质控~细胞筛选~高表达基因筛选

文章目录 一、实验介绍二、实验环境1. 配置虚拟环境2. 库版本介绍 三、实验内容0. 导入必要的库1. 质控2. 细胞筛选3. 高表达基因筛选 一、实验介绍 质控~ 细胞筛选 ~高表达基因筛选 二、实验环境 1. 配置虚拟环境 可使用如下指令: conda create -n bio python3.…