当前位置: 首页 > news >正文

HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景二

3.创建其他应用或其他Module的Context
基类Context提供创建其他应用或其他Module的Context的方法为createModuleContext(moduleName:string),创建其他应用或者其他Module的Context,从而通过该Context获取相应的资源信息(例如获取其他Module的获取应用开发路径信息)。
调用createModuleContext(moduleName:string)方法,获取本应用中其他Module的Context。获取到其他Module的Context之后,即可获取到相应Module的资源信息。

import UIAbility from '@ohos.app.ability.UIAbility';export default class EntryAbility extends UIAbility {onCreate(want, launchParam) {let moduleName2 = "module1";let context2 = this.context.createModuleContext(moduleName2);// ...}
}

4.订阅进程内Ability生命周期变化
在应用内的DFX统计场景,如需要统计对应页面停留时间和访问频率等信息,可以使用订阅进程内Ability生命周期变化功能。
在进程内Ability生命周期变化时,如创建、可见/不可见、获焦/失焦、销毁等,会触发进入相应的回调,其中返回的此次注册监听生命周期的ID(每次注册该ID会自增+1,当超过监听上限数量2^63-1时,返回-1),以在UIAbilityContext中使用为例进行说明。

import UIAbility from '@ohos.app.ability.UIAbility';
import Window from '@ohos.window';const TAG: string = "[Example].[Entry].[EntryAbility]";export default class EntryAbility extends UIAbility {lifecycleId: number;onCreate(want, launchParam) {let abilityLifecycleCallback = {onAbilityCreate(ability) {console.info(TAG, "onAbilityCreate ability:" + JSON.stringify(ability));},onWindowStageCreate(ability, windowStage) {console.info(TAG, "onWindowStageCreate ability:" + JSON.stringify(ability));console.info(TAG, "onWindowStageCreate windowStage:" + JSON.stringify(windowStage));},onWindowStageActive(ability, windowStage) {console.info(TAG, "onWindowStageActive ability:" + JSON.stringify(ability));console.info(TAG, "onWindowStageActive windowStage:" + JSON.stringify(windowStage));},onWindowStageInactive(ability, windowStage) {console.info(TAG, "onWindowStageInactive ability:" + JSON.stringify(ability));console.info(TAG, "onWindowStageInactive windowStage:" + JSON.stringify(windowStage));},onWindowStageDestroy(ability, windowStage) {console.info(TAG, "onWindowStageDestroy ability:" + JSON.stringify(ability));console.info(TAG, "onWindowStageDestroy windowStage:" + JSON.stringify(windowStage));},onAbilityDestroy(ability) {console.info(TAG, "onAbilityDestroy ability:" + JSON.stringify(ability));},onAbilityForeground(ability) {console.info(TAG, "onAbilityForeground ability:" + JSON.stringify(ability));},onAbilityBackground(ability) {console.info(TAG, "onAbilityBackground ability:" + JSON.stringify(ability));},onAbilityContinue(ability) {console.info(TAG, "onAbilityContinue ability:" + JSON.stringify(ability));}}// 1. 通过context属性获取applicationContextlet applicationContext = this.context.getApplicationContext();// 2. 通过applicationContext注册监听应用内生命周期this.lifecycleId = applicationContext.on("abilityLifecycle", abilityLifecycleCallback);console.info(TAG, "register callback number: " + JSON.stringify(this.lifecycleId));}onDestroy() {let applicationContext = this.context.getApplicationContext();applicationContext.off("abilityLifecycle", this.lifecycleId, (error, data) => {console.info(TAG, "unregister callback success, err: " + JSON.stringify(error));});}
}
http://www.lryc.cn/news/144098.html

相关文章:

  • 数字货币量化交易平台
  • 2022 ICPC 济南 E Identical Parity (扩欧)
  • 【BUG事务内消息发送】事务内消息发送,事务还未结束,消息发送已被消费,查无数据怎么解决?
  • 数据分析作业四-基于用户及物品数据进行内容推荐
  • 在腾讯云服务器OpenCLoudOS系统中安装svn(有图详解)
  • C语言日常刷题5
  • 【LeetCode-中等题】73. 矩阵置零
  • 本地部署 FastGPT
  • 软件工程(十八) 行为型设计模式(四)
  • Socket通信与WebSocket协议
  • 新KG视点 | Jeff Pan、陈矫彦等——大语言模型与知识图谱的机遇与挑战
  • 详解过滤器Filter和拦截器Interceptor的区别和联系
  • List常用的操作
  • Android studio APK切换多个摄像头(Camera2)
  • ChatGPT 对教育的影响,AI 如何颠覆传统教育
  • Spring(九)声明式事务
  • java中用HSSFWorkbook生成xls格式的excel(亲测)
  • 做平面设计一般电脑可以吗 优漫动游
  • 设计模式备忘录+命令模式实现Word撤销恢复操作
  • Linux centos7 bash编程小训练
  • 创作2周年纪念日-特别篇
  • 【UE5】用法简介-使用MAWI高精度树林资产的地形材质与添加风雪效果
  • 兼容AD210 车规级高精度隔离放大器:ISO EM210
  • R语言常用数组函数
  • 前端开发之Element Plus的分页组件el-pagination显示英文转变为中文
  • 基于Java+SpringBoot+Vue前后端分离社区医院管理系统设计和实现
  • 浅谈单例模式在游戏开发中的应用
  • Stable Diffusion WebUI 整合包
  • 什么是 RESTful API
  • 如何搭建关键字驱动自动化测试框架?