`
龙儿筝
  • 浏览: 9761 次
社区版块
存档分类
最新评论

认识鸿蒙Context

阅读更多

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

Context继承关系

img1

获取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();
    //...
  }
}
0
0
分享到:
评论

相关推荐

    HarmonyOS应用开发-文件上传问题的解决方式

    ### HarmonyOS应用开发-文件上传问题的解决方式 #### 问题背景 在HarmonyOS的应用开发过程中,开发者可能会遇到文件上传的问题。例如,在尝试访问一个文件时遇到错误提示:“`/data/user/0/...

    harmonyos应用开发-如何打开第三方应用.docx

    ### HarmonyOS应用开发——如何打开第三方应用 #### 一、引言 在HarmonyOS的应用开发过程中,有时候我们需要实现从当前应用中打开第三方应用的功能,比如通过微信分享内容或者使用支付宝进行支付等。为了实现这一...

    spring-context.jar

    spring-context-1.2.8.jar, spring-context-1.2.9.jar, spring-context-2.0-m2.jar, spring-context-2.0.1.jar, spring-context-2.0.2.jar, spring-context-2.0.4.jar, spring-context-2.0.6.jar, spring-context-...

    js中获取contextPath

    在Web开发中,`contextPath`是一个非常关键的概念,它代表了Web应用程序在服务器上的根目录路径。在Java Servlet环境中,`contextPath`是Servlet容器(如Tomcat、Jetty等)分配给Web应用的唯一标识,用于区分同一个...

    Android的context使用

    在Android开发中,Context是一个非常核心的概念,它代表了应用程序的环境或上下文,提供了与系统服务交互的能力。本文将详细介绍Android中Context的使用,并通过一个简单的Demo展示如何在工具类和View中灵活地获取和...

    pascal context

    《PASCAL Context:深度学习中的重要数据集》 PASCAL Context,全称为PASCAL Context Dataset,是计算机视觉领域一个重要的数据集,尤其在语义分割和场景理解任务中占据着至关重要的地位。该数据集是PASCAL VOC...

    context manual

    《Context手册:深入理解文档排版与设计》 在IT领域,尤其是对于那些从事文档处理、排版设计以及LaTeX爱好者来说,Context无疑是一个强大的工具。由Hans Hagen和Taco Hoekwater编写的“Context参考手册”是学习和...

    ORACLE中的sys_context函数

    * `SYS_CONTEXT('USERENV', 'OS_USER')`:当前操作系统的用户名 4. 网络信息: * `SYS_CONTEXT('USERENV', 'IP_ADDRESS')`:当前会话的 IP 地址 * `SYS_CONTEXT('USERENV', 'NETWORK_PROTOCOL')`:当前会话的网络...

    反射获取Context的实例

    本文将深入探讨如何通过反射获取`Context`的实例,并展示如何利用反射实现一个集成`Toast`的工具类。这在某些场景下非常有用,比如当我们需要在没有直接访问`Context`的情况下显示`Toast`消息。 首先,让我们了解`...

    通过反射获取Context实例的Demo

    在Android开发中,Context是应用程序的核心组件之一,它提供了与Android系统交互的接口,包括启动Activity、发送广播、访问资源等操作。当我们需要在非Activity或非Service类中使用Context时,可以通过各种方式获取...

    使用多个Context的CoreData

    1. **父子Context模式**:一个MOC可以作为另一个MOC的父级,这种模式下,子Context的变更会自动传播到父Context,最后由父Context统一保存到持久化存储。创建子Context的代码如下: ```swift let parentContext =...

    spring-cloud-context-3.1.1-API文档-中文版.zip

    赠送jar包:spring-cloud-context-3.1.1.jar; 赠送原API文档:spring-cloud-context-3.1.1-javadoc.jar; 赠送源代码:spring-cloud-context-3.1.1-sources.jar; 赠送Maven依赖信息文件:spring-cloud-context-...

    spring-context.jar jar包 上下文

    jar包分享,你懂的 spring-context.jar spring-context.jar spring-context.jar spring-context.jar spring-context.jar

    spring-context-5.2.15.RELEASE-API文档-中文版.zip

    赠送jar包:spring-context-5.2.15.RELEASE.jar; 赠送原API文档:spring-context-5.2.15.RELEASE-javadoc.jar; 赠送源代码:spring-context-5.2.15.RELEASE-sources.jar; 赠送Maven依赖信息文件:spring-context-...

    android demo,BaseAdapter传递context的应用

    2. **资源访问**:`Context`提供对Android资源(如字符串、颜色、尺寸等)的访问,例如`context.getResources().getColor(colorRes)`或`context.getString(stringRes)`。在适配器中,我们可能需要根据资源ID获取相应...

    通过反射拿到Context Demo

    在Android开发中,Context是应用程序的核心组件之一,它代表了应用程序与Android系统交互的桥梁。在许多场景下,我们都需要使用到Context,例如初始化View、启动服务、发送广播等。然而,频繁地在方法间传递Context...

    GoLang之使用Context控制请求超时的实现

    - **子 Context**:可以通过 `context.WithCancel`, `context.WithDeadline`, `context.WithTimeout` 和 `context.WithValue` 方法从父 Context 衍生出子 Context。 #### 子 Context 的特性 - **`context....

    spring-context-support-5.0.5.RELEASE-API文档-中文版.zip

    赠送jar包:spring-context-support-5.0.5.RELEASE.jar; 赠送原API文档:spring-context-support-5.0.5.RELEASE-javadoc.jar; 赠送源代码:spring-context-support-5.0.5.RELEASE-sources.jar; 赠送Maven依赖信息...

    Android Context使用例子.

    在Android开发中,`Context`是一个非常核心的概念,它就像是应用程序的一个全局环境或者上下文,提供了与系统服务交互的能力。`Context`的理解和正确使用对于编写健壮的Android应用至关重要。下面将详细介绍`Context...

    spring-context-support-5.0.10.RELEASE-API文档-中文版.zip

    赠送jar包:spring-context-support-5.0.10.RELEASE.jar; 赠送原API文档:spring-context-support-5.0.10.RELEASE-javadoc.jar; 赠送源代码:spring-context-support-5.0.10.RELEASE-sources.jar; 赠送Maven依赖...

Global site tag (gtag.js) - Google Analytics