【HarmonyOS NEXT】FAQ之应用框架(程序框架1)

1、如何获取设备横竖屏的状态变化通知

A:可以通过以下几种方式来实现订阅系统环境变量的变化:

  • 使用ApplicationContext订阅回调。

  • 在AbilityStage组件容器中订阅回调。

  • 在UIAbility组件中订阅回调。

  • 在ExtensionAbility组件中订阅回调。

在onConfigurationUpdate()回调方法中订阅或监听系统环境变量的变化(包括语言,颜色模式,屏幕方向等)。

2、如何停止UIAbility自身

A:可以通过调用terminateSelf()方法实现停止UIAbility自身。

3、如何在UIAbility调用terminateSelf()后设置不保留最近任务列表中的快照

A:在HarmonyOS应用开发中,UIAbilityContext的terminateSelf()方法被用来结束当前的UIAbility实例。

如果希望在调用terminateSelf()后,让应用在最近任务列表中不保留快照,可以通过在module.json5配置文件中配置removeMissionAfterTerminate为true来实现。

4、如何主动退出整个应用

A:可以通过ApplicationContext的killAllProcesses()方法主动退出当前的应用。

调用killAllProcesses()方法后,会将应用中所有的进程逐个Kill掉。

5、通过startAbility()方法无法启动UIAbility实例

A:如下

  • 如果是通过startAbility()的方式拉起,检查want中abilityName字段是否携带了bundleName做前缀,如果有,请删除。

  • 检查EntryAbility.ets文件中onWindowStageCreate()方法配置的UIAbility首页文件是否在main_pages.json中有定义,如果没有定义,请补齐。

6、启动UIAbility时报“The specified ability does not exist”错误

A:如下

    1. 检查startAbility()的want参数中bundleName和abilityName是否正确。

    1. 单击“Run > Edit Configurations > Deploy Multi Hap”,勾选“Deploy Multi Hap Packages”,安装module。

7、启动UIAbility时报“must have required property 'startWindowIcon'”错误

通过startAbility()方法启动UIAbility时,编译报错:must have required property 'startWindowIcon'。

A:确保module.json5配置文件中skills标签中startWindowIcon字段已配置。

8、调用方使用startAbilityForResult()时,被调用方如何返回数据

A:被调用方使用AbilityContext.terminateSelfWithResult()方法,销毁被调用方UIAbility,传递参数给startAbilityForResult()回调函数。

9、如何在未知UIAbility的情况下通过隐式Want拉起应用

A:首先待匹配的UIAbility需要配置skills,声明其具备的能力。然后调用方传入want参数,表明调用方需要执行的操作,并提供相关数据以及其他应用类型限制。

系统将调用方传入的want参数(包含action、entities、uri和type属性)与已安装待匹配应用组件的skills配置(包含actions、entities、uris和type属性)依次进行匹配。当四个属性匹配均通过,则此应用才会被应用选择器展示给用户进行选择。

10、拉起UIAbility时报“16000050”错误

A:如下

  • 确认系统内存是否足够,设备使用的系统版本是否存在异常。

  • 检查是否启动了过多的UIAbility实例。

  • 尝试重启设备。

11、通过隐式Want拉起浏览器应用时报“16000050”错误

A:如下

  • 排查浏览器版本,是否支持隐式Want跳转;

  • 隐式Want拉起时,Want参数中去掉type信息;

  • 检查Want的网址是否为完整链接,需要包含http://前缀。

12、部署HAP时上报“Failure[INSTALL_FAILED_SIZE_TOO_LARGE] error while deploying hap”错误

A:将其拆分为多个HAP即可解决。

13、如何获取应用级别的temp路径和files路径

A:通过应用上下文context获取。例如:

  • temp路径:可通过this.context.getApplicationContext().tempDir获取。

  • files路径:可通过this.context.getApplicationContext().filesDir获取。

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值