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

news2024/12/23 0:20:21

一、说明
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.coloradmin.cn/o/1308533.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

力扣题:数字与字符串间转换-12.14

力扣题-12.14 [力扣刷题攻略] Re:从零开始的力扣刷题生活 力扣题1:442. 数组中重复的数据 解题思想:从字符串中能够正确提取数字即可 class Solution(object):def complexNumberMultiply(self, num1, num2):""":type num1:…

acwing-蓝桥杯C++ AB组辅导课Day1-递归

感谢梦翔老哥的蓝桥杯C AB组辅导课~ 省一刷200题 国赛拿成绩300题 比赛考察的是各种模型的熟练度,可以从dfs的角度比较各个模型与当前问题的匹配程度。 常见时间复杂度,根据时间复杂度可以判别是否可以选用这个解题思路 写递归的时候&#xff…

visual Studio MFC 平台实现图片的傅里叶变换

图片的傅里叶变换 本文主要讲解傅里叶变换的基本数学概念与物理概念,并本文使用visual Studio MFC 平台实现对傅里叶变换在图片上进行了应用。 一、傅里叶变换的原理 在这里推荐一篇讲得非常形象的文章通俗讲解:图像傅里叶变换 1.1 傅里叶变换原理的说明…

kernel(三):kernel移植

本文主要探讨210官方kernel移植。 配置文件选择 选择配置文件smdkv210_android_defconfig(arch/arm/configs) 修改主Makefile 配置cpu架构和交叉编译工具链 vim MakefileARCH ? armCROSS_COMPILE ? /root/arm-2009q3/bin/arm-none-linux-gnueabi- 初步编译烧…

HarmonyOS应用程序框架

应用程序入口—UIAbility的使用 UIAbility概述 UIAbility是一种包含用户界面的应用组件,主要用于和用户进行交互。UIAbility也是系统调度的单元,为应用提供窗口在其中绘制界面。 每一个UIAbility实例,都对应于一个最近任务列表中的任务。 …

【论文阅读】MAKE-A-VIDEO: TEXT-TO-VIDEO GENERATION WITHOUT TEXT-VIDEO DATA

Make-a-video:没有文本-视频数据的文本-视频生成。 paper: code: ABSTRACT 优点: (1)加速了T2V模型的训练(不需要从头开始学习视觉和多模态表示), (2)不需要配对的文本-视频数据, (3)生成的视频继承了当今图像生成模型的庞大…

HBase 高可用集群详细图文安装部署

目录 一、HBase 安装部署 1.1 Zookeeper 正常部署 1.2 Hadoop 正常部署 1.3 HBase 安装 1.4 HBase 的配置文件 1.4.1 hbase-env.sh 1.4.2 hbase-site.xml 1.4.3 regionservers 1.4.4 创建目录 1.5 HBase 远程发送到其他节点 1.6 HBase 服务的启动 1.6.1 单点…

用友时空 KSOA 多处SQL注入漏洞复现

0x01 产品简介 用友时空 KSOA 是建立在 SOA 理念指导下研发的新一代产品,是根据流通企业前沿的 IT 需求推出的统一的IT基础架构,它可以让流通企业各个时期建立的 IT 系统之间彼此轻松对话。 0x02 漏洞概述 用友时空 KSOA 系统 PayBill、QueryService、linkadd.jsp等接口处…

数字化赋能实体经济,凌雄科技发挥DaaS模式提质增效价值

11月中旬,市场监管总局发布了2023年前三季度经营主体数据。其中,前三季度全国新设民营企业总计706.5万户,截至9月底,全国登记在册的民营企业数量超过5200万户,在企业总量中占比高达92.3%。如何帮助民营企业实现高质量发…

中海达亮相能源北斗与时空智能创新技术应用大会

12月7日-8日,2023年能源北斗与时空智能创新技术应用大会暨鹭岛论坛在厦门举办。本次活动以“能源北斗时空智能”为主题,由中关村智能电力产业技术联盟、中国能源研究会、中国卫星导航定位协会、中国电力科学研究院有限公司、国网信息通信产业集团有限公司…

探索 Vim:一个强大的文本编辑器

引言: Vim(Vi IMproved)是一款备受推崇的文本编辑器,拥有强大的功能和高度可定制性,提供丰富的编辑和编程体验。本文将探讨 Vim 的基本概念、使用技巧以及为用户带来的独特优势。 简介和发展 1. Vim 的简介和历史 V…

0基础学习VR全景平台篇第127篇:什么是VR全景/720全景漫游?

“全景”作为一种表现宽阔视野的手法,在很久之前就得到了普遍的认同。北宋年间,由张择端绘制的《清明上河图》就是一幅著名的全景画。摄影术出现后,全景摄影也随之而生。 到今天,全景拍摄不再被专业摄影师所独享,广大…

uniapp 之 图片 视频 文件上传

<view class"" style"padding: 24rpx 0"><text>相关资料 <text class"fs-26 color-666">&#xff08;图片、视频、文档不超过9个&#xff09;</text> </text><view class"flex align-center" style&…

CNN 卷积神经网络之 DenseNet 网络的分类统一项目(包含自定义数据集的获取)

1. DenseNet 网络介绍 本章实现的项目是DenseNet 网络对花数据集的五分类&#xff0c;下载链接&#xff1a; 基于迁移学习的 DenseNet 图像分类项目 DenseNet 网络是在 ResNet 网络上的改进&#xff0c;大概的网络结构如下&#xff1a; 1.1 卷积的简单介绍 图像识别任务主要…

通过 RIOT 将 AWS ElastiCache 迁移到阿里云 Tair

本文通过示例介绍了 RIOT 如何轻松地将数据从 AWS ElastiCache 迁移到云原生内存数据库&#xff08;如 Tair 和云数据库 Redis 版&#xff09;。 1. 准备资源迁移 1.1. 源代码 AWS ElastiCache cache.r6g.xlarge。它有三个数据分片&#xff0c;与 Redis 6.2 兼容。 AWS EC2 t2.…

共建开源新里程:北京航空航天大学OpenHarmony技术俱乐部正式揭牌成立

12月11日,由OpenAtom OpenHarmony(以下简称“OpenHarmony”)项目群技术指导委员会(以下简称“TSC”)和北京航空航天大学共同举办的“OpenHarmony软件工程研讨会暨北京航空航天大学OpenHarmony技术俱乐部成立仪式”在京圆满落幕。 现场大合影 活动当天,多位重量级嘉宾出席了此次…

2023.12.14 hive sql的聚合增强函数 grouping set

目录 1.建库建表 2.需求 3.使用union all来完成需求 4.聚合函数增强 grouping set 5.聚合增强函数cube ,rollup 6.rollup翻滚 7.聚合函数增强 -- grouping判断 1.建库建表 -- 建库 create database if not exists test; use test; -- 建表 create table test.t_cookie(month …

理解 Proxy 和 Object.defineProperty:提升你的 JavaScript 技能(下)

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

华为配置基本QinQ示例

组网需求 如图1所示&#xff0c;网络中有两个企业&#xff0c;企业1有两个分支&#xff0c;企业2有两个分支。这两个企业的各办公地的企业网都分别和运营商网络中的SwitchA和SwitchB相连&#xff0c;且公网中存在其它厂商设备&#xff0c;其外层VLAN Tag的TPID值为0x9100。 现…

ffmpeg编解码——数据包(packet)概念(如何正确处理数据包中的显示时间戳pts与解码时间戳dts关系?)

文章目录 FFmpeg编解码——数据包&#xff08;Packet&#xff09;概念1. 数据包&#xff08;Packet&#xff09;简介2. 数据包&#xff08;Packet&#xff09;在FFmpeg中的应用2.1 从媒体文件读取数据包2.2 向媒体文件写入数据包 3. 数据包&#xff08;Packet&#xff09;相关问…