网站cms建设,wordpress网站代码优化,张家港建网站,网站优化的论文是什么
Context是应用中对象的上下文#xff0c;其提供了应用的一些基础信息#xff0c;例如resourceManager#xff08;资源管理#xff09;、applicationInfo#xff08;当前应用信息#xff09;、dir#xff08;应用文件路径#xff09;、area#xff08;文件分区…是什么
Context是应用中对象的上下文其提供了应用的一些基础信息例如resourceManager资源管理、applicationInfo当前应用信息、dir应用文件路径、area文件分区等以及应用的一些基本方法例如createBundleContext()、getApplicationContext()等。UIAbility组件和各种ExtensionAbility派生类组件都有各自不同的Context类。分别有基类Context、ApplicationContext、AbilityStageContext、UIAbilityContext、ExtensionContext、ServiceExtensionContext等Context。应用上下文Context是应用程序的全局信息的接口。它是一个抽象类提供了访问应用程序环境的方法和资源的方法 总而言之Context提供了访问应用程序资源和服务的接口。 各类Context的继承关系
各类Context的持有关系
如何获取 context
在具体的页面中获取 context 就使用 getcontextthis
如果需要在页面中获得当前Ability的Context可调用getContext接口获取当前页面关联的UIAbilityContext或ExtensionContext。
//pages/Index.ets
Entry
Component
struct Index {State message: string Hello Worldbuild() {Row() {Column() {Text(this.message).fontSize(50).fontWeight(FontWeight.Bold).onClick(() {// 建议使用this.getUIContext().getHostContext()let context : Context getContext(this) as Contextconsole.info(CacheDir: context.cacheDir)})}.width(100%)}.height(100%)}
} 说明如果需要在页面中获得当前Ability的Context可调用getContext接口获取当前页面关联的UIAbilityContext
getContext传入this和不传入有什么区别
getContext参数及类型getContext(component?: Object):Context。
Context传入参数component的作用是指定一个组件对象getContext函数会返回这个组件的上下文对象Context。如果不传入参数则默认返回当前组件的上下文对象。上下文对象Context包含了组件的状态、属性、方法等信息可以在组件内部使用。
在某些场景下可能需要在组件内部调用其他组件的方法或获取其他组件的属性此时可以通过getContext(this)获取到当前组件的上下文对象然后使用该上下文对象调用其他组件的方法或获取其他组件的属性
获取UIAbility的上下文信息
UIAbility类拥有自身的上下文信息该信息为UIAbilityContext类的实例UIAbilityContext类拥有abilityInfo、currentHapModuleInfo等属性。通过UIAbilityContext可以获取UIAbility的相关配置信息如包代码路径、Bundle名称、Ability名称和应用程序需要的环境状态等属性信息以及可以获取操作UIAbility实例的方法如startAbility()、connectServiceExtensionAbility()、terminateSelf()等。
如果需要在页面中获得当前Ability的Context可调用getContext接口获取当前页面关联的UIAbilityContext或ExtensionContext。 在UIAbility中可以通过this.context获取UIAbility实例的上下文信息。 import { UIAbility, AbilityConstant, Want } from kit.AbilityKit;export default class EntryAbility extends UIAbility {onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void {// 获取UIAbility实例的上下文let context this.context;
//将 context 存进去
AppStorage.setOrCreate(EntryAbilityContext, this.context);// ...}
} 注意 !在生明的类里面 拿到context 方式 最好使用这种方式
export class appOptionModel {
// 使用在 entry 里面存储的 EntryAbilityContext 这样才行
context: common.UIAbilityContext | undefined AppStorage.get(EntryAbilityContext); // 获取UIAbilityContext}