首页 > 其他分享 >HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景二

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

时间:2023-08-28 10:34:14浏览次数:40  
标签:info OpenHarmony stringify console ability HarmonyOS JSON TAG 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属性获取applicationContext
        let 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));
        });
    }
}


标签:info,OpenHarmony,stringify,console,ability,HarmonyOS,JSON,TAG,Context
From: https://blog.51cto.com/u_14946066/7260863

相关文章

  • 论文解读(PERL)《PERL: Pivot-based Domain Adaptation for Pre-trained Deep Contextua
    Note:[wechat:Y466551|可加勿骚扰,付费咨询]论文信息论文标题:PERL:Pivot-basedDomainAdaptationforPre-trainedDeepContextualizedEmbeddingModels论文作者:EyalBen-David、CarmelRabinovitz、RoiReichart论文来源:2020TACL论文地址:download 论文代码:download视屏......
  • HarmonyOS/OpenHarmony(Stage模型)卡片开发应用上下文Context使用场景一
    1.获取应用文件路径基类Context提供了获取应用文件路径的能力,ApplicationContext、AbilityStageContext、UIAbilityContext和ExtensionContext均继承该能力。应用文件路径属于应用沙箱路径。上述各类Context获取的应用文件路径有所不同。通过ApplicationContext获取应用级别的应用......
  • #2023盲盒+码# OpenHarmony应用ArkUI 状态管理开发范例
    OpenHarmony应用ArkUI状态管理开发范例【本文正在参加2023「盲盒」+码有奖征文活动】https://ost.51cto.com/posts/25284OpenHarmony应用ArkUI状态管理开发范例本文根据橘子购物应用,实现ArkUI中的状态管理。在声明式UI编程框架中,UI是程序状态的运行结果,用户构建了一个UI模......
  • OpenHarmony平台驱动案例--UART
    1、程序介绍本程序是基于OpenHarmony标准系统编写的平台驱动案例:UART详细资料请参考官网:UART平台驱动开发UART应用程序开发2、基础知识2.1、UART简介UART指异步收发传输器(UniversalAsynchronousReceiver/Transmitter),是通用串行数据总线,用于异步通信。该总线双向通信,可以......
  • OpenHarmony 分布式硬件关键技术
     本文转载自 OpenHarmony TSC 官方微信公众号《峰会回顾第8期 | OpenHarmony 分布式硬件关键技术》  演讲嘉宾 | 李   刚回顾整理 | 廖   涛排版校对 | 李萍萍嘉宾简介李刚,华为OpenHarmony技术专家,OpenHarmony分布式硬件技术负责人。主要负责OpenH......
  • OpenHarmony应用实现二维码扫码识别
     本文转载自《OpenHarmony应用实现二维码扫码识别》,作者zhushangyuan_  概念介绍二维码的应用场景非常广泛,在购物应用中,消费者可以直接扫描商品二维码,浏览并购买产品,如图是购物应用的扫描二维码的页面。本文就以橘子购物示例应用为例,来讲解OpenHarmony应用二维码开发相......
  • python-上下文管理器Context
    1.什么是上下文管理器?上下文管理器是一个对象,他定义了执行with语句时要建立的上下文,上下文管理器处理进去和退出所需运行时上下文执行代码块。简单来说一个上下文管理器至少包含__enter__和__exit__两个方法,python提供了contextlib模块中的contextmanager用作装饰器并配合迭......
  • Windows搭建OpenHarmony编译环境
    由于OpenHarmony的编译工具链主要是建立在Linux操作系统下,如需要编译OpenHarony内核则需要搭建虚拟机等工序,相对比较繁琐。那么,是否可以在Windows操作系统上实现对OpenHarmony编译呢?答案是:可以。所以,我们今天来尝试在Windows环境下搭建OpenHarmony编译环境。本次OpenHarmony选用小......
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)
     【关键字】音频编码、管道模式、createEncoder【写在前面】在使用API6开发HarmonyOS应用时,如何将pcm源文件进行编码并写入文件,最后生成aac文件,本文直接附上主要代码开发步骤供大家参考。【主要功能代码】importohos.media.codec.Codec;importohos.media.common.BufferInfo;im......
  • 【HarmonyOS】实现将pcm音频文件进行编码并写入文件(API6 Java)
    【关键字】音频编码、管道模式、createEncoder 【写在前面】在使用API6开发HarmonyOS应用时,如何将pcm源文件进行编码并写入文件,最后生成aac文件,本文直接附上主要代码开发步骤供大家参考。 【主要功能代码】importohos.media.codec.Codec;importohos.media.common.Buf......