写点什么

认识鸿蒙 Context

作者:龙儿筝
  • 2024-11-05
    上海
  • 本文字数:992 字

    阅读完需:约 3 分钟

Context 是应用中对象的上下文,其提供了应用的一些基础信息,例如 resourceManager(资源管理)、applicationInfo(当前应用信息)、dir(应用文件路径)、area(文件分区)等,以及应用的一些基本方法,例如 createBundleContext()、getApplicationContext()等。UIAbility 组件和各种 ExtensionAbility 派生类组件都有各自不同的 Context 类。分别有基类 Context、ApplicationContext、AbilityStageContext、UIAbilityContext、ExtensionContext、ServiceExtensionContext 等 Context。

Context 继承关系

获取 UIAbilityContext

每个 UIAbility 中都包含了一个 Context 属性,提供操作应用组件、获取应用组件的配置信息等能力


import { UIAbility, AbilityConstant, Want } from '@kit.AbilityKit';
export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { let uiAbilityContext = this.context; //... }}
复制代码

获取特定场景 ExtensionContext

以 ServiceExtensionContext 为例,表示后台服务的上下文环境,继承自 ExtensionContext,提供后台服务相关的接口能力。


import { ServiceExtensionAbility, Want } from '@kit.AbilityKit';
export default class ServiceExtAbility extends ServiceExtensionAbility { onCreate(want: Want) { let serviceExtensionContext = this.context; //... }}
复制代码

获取 AbilityStageContext

Module 级别的 Context,和基类 Context 相比,额外提供 HapModuleInfo、Configuration 等信息


import { AbilityStage } from '@kit.AbilityKit';
export default class MyAbilityStage extends AbilityStage { onCreate(): void { let abilityStageContext = this.context; //... }}
复制代码

获取 ApplicationContext

应用级别的 Context。ApplicationContext 在基类 Context 的基础上提供了订阅应用内应用组件的生命周期的变化、订阅系统内存变化和订阅应用内系统环境的变化的能力,在 UIAbility、ExtensionAbility、AbilityStage 中均可以获取。


import { UIAbility, AbilityConstant, Want } from '@kit.AbilityKit';
export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { let applicationContext = this.context.getApplicationContext(); //... }}
复制代码


发布于: 刚刚阅读数: 5
用户头像

龙儿筝

关注

还未添加个人签名 2024-10-27 加入

还未添加个人简介

评论

发布
暂无评论
认识鸿蒙Context_鸿蒙_龙儿筝_InfoQ写作社区