参考官方的文档,getContext接口可以获取与页面上下文组件关联的Context对象。如果需要在页面中获得当前Ability的Context,可调用getContext接口获取当前页面关联的UIAbilityContext或ExtensionContext。
-
从API version 18开始废弃,建议使用UIContext中的getHostContext替代。
-
从API version 12开始,可以通过使用UIContext中的getHostContext来明确UI的执行上下文。
也就是说,如果App仅支持HarmonyOS NEXT,那么默认的使用getHostContext接口,就可以实现获取当前页面关联的Context对象。
那么对于getContext接口将要废弃如何修改呢,主要有两个方面:
-
如果是在组件中使用的getContext接口,则可以使用this.getUIContext().getHostContext()
-
如果是在非组件中使用的getContext接口,则可以先将this.getUIContext().getHostContext()存储在全局存储区中(例如使用AppStorage、全局管理类等方式将该值存储),在需要时获取该值即可。在整个HAP中该值是唯一的,可以在第一个页面开始加载时存储。