Q:API参考文档中说明getContext方法从API version 18开始弃用,建议使用UIContext中的getHostContext替代。在使用过程中发现,将返回值类型注解为Context时编译报错,请问两者有什么差异?
A:
对比维度 | getContext | getHostContext |
|---|---|---|
废弃状态 | 从API 18起废弃,不再推荐使用。 | API 12引入,API 18起作为推荐替代方案。 |
返回值类型 | Context | Context|undefined |
获取Context方式 | let context: Context = getContext(this); | let context: Context|undefined = this.getUIContext().getHostContext(); |
Q:ApplicationContext、UIAbilityContext、Context的区别是什么?
A:ApplicationContext 和 UIAbilityContext 都继承自基类 Context,不同的 Context 具有不同的属性和方法。
ApplicationContext:应用级别的Context,提供了订阅应用组件生命周期变化、系统内存变化和应用系统环境变化的能力。可以在UIAbility、ExtensionAbility、AbilityStage中获取。
UIAbilityContext:每个UIAbility包含一个Context属性,用于操作应用组件和获取组件配置信息。
参考链接:应用上下文Context。
Q:UIContext与Ability的关系,列举常见UIContext、Ability、UIAbilityContext的关系?
A:常见UIContext、Ability、UIAbilityContext的关系如下: