1、服务卡片EntryFormAbility生命周期回调函数在哪个ArkTS文件中调用
A:新建卡片时会生成一个EntryFormAbility.ets文件,其中包含卡片对应的生命周期。
2、UIAbility如何刷新ArkTS卡片
A:在卡片页面中可以通过postCardAction接口触发router事件或者call事件拉起UIAbility,然后由UIAbility刷新卡片内容。
3、UIAbility是否可以做到对部分白名单应用可见
A:abilities配置中,exported标签用于控制UIAbility是否可见,permissions标签标识被其它应用的UIAbility调用时需要申请的权限的集合,没有配置应用白名单选项。
4、startAbility()跳转UIAbility不成功,错误码16000001
A:16000001表示指定的UIAbility名称不存在。检查want中参数是否正确或者指定的UIAbility是否存在。
5、多Module应用通过startAbility()启动时报错
A:单击Run > Edit Configurations,设置指定模块的HAP安装方式,勾选“Keep Application Data”,则表示采用覆盖安装方式,保留应用/服务缓存数据。
6、什么场景下需要使用到多个UIAbility
A:UIAbility组件是系统调度的基本单元,为应用提供绘制界面的窗口。每一个UIAbility组件实例都会在最近任务列表中显示一个对应的任务。一个应用可以包含一个或多个UIAbility组件,因此对于开发者有如下建议:
-
如果开发者希望在任务视图中看到一个任务,则建议使用一个UIAbility,多个页面的方式。
-
如果开发者希望在任务视图中看到多个任务,或者需要同时开启多个窗口,则建议使用多个UIAbility开发不同的模块功能。
7、若应用有多个UIAbility,为何桌面点击应用后显示的永远是同一个UIAbility
A:点击桌面图标会进入应用的主界面,即开发者为应用设置的入口UIAbility。可以通过startAbility拉起特定的UIAbility,或者通过最近任务列表进入已经打开过的UIAbility。
8、启动一个UIAbility后,如何感知该UIAbility的销毁,并执行某些操作
A:可以通过startAbilityForResult拉起新UIAbility,并在callback中执行返回调用方时需要执行的操作。
9、启动一个已启动的UIAbility,什么情况下才会执行onNewWant()回调
A:当该UIAbility配置为单实例模式时,再次调用startAbility()方法启动该UIAbility实例,才会进入该UIAbility的onNewWant()回调。
10、UIAbility跳转时,如何指定跳转的窗口模式
A:当前只允许系统应用配置跳转时的窗口模式,具体方法为:startAbility/startAbilityForResult等方法配置options参数的windowMode字段。
11、UIAbility在onBackground执行耗时操作时是否会影响另外一个UIAbility的onForeground
A:如下
-
不同UIAbility生命周期是相互独立的,不会互相影响
-
同一个UIAbility生命周期中的耗时操作会触发系统监控并冻结,因此应用开发过程中应使用异步的方法处理耗时操作,避免影响UIAbility生命周期的流转。
12、getContext(this)能否在自定义类中使用
A:getContext(this)中的this需要指向组件,所以只需确保自定义类在调用getContext时,传入的参数是指向组件的即可。
13、是否允许三方应用在手机设备上Fork进程
A:当前不允许三方应用在手机设备上Fork进程。
14、如何在Worker子线程的ArkTS文件中获取UIAbilityContext
A:在Worker线程中无法直接获取到组件级的Context,不能通过getContext获取上下文对象,如果有相关业务需求,只能从主线程通过getContext获取上下文Context,然后通过postMessage参数传递给Worker线程。
更多详情查看:文档中心