【HarmonyOS NEXT】FAQ之应用框架(程序框架-后台任务开发)

1、如何在Stage模型中创建后台服务

Stage模型中的ServiceExtensionAbility是系统接口,第三方应用不支持调用,如何在Stage模型中创建后台服务?

A:Stage模型可通过后台任务实现该功能。

2、应用在进行后台后,如何继续执行业务

A:当应用或业务模块处于后台(无可见界面)时,如果有需要继续执行或者后续执行的业务,可基于业务类型,申请短时任务延迟挂起(Suspend)或者长时任务避免进入挂起状态。

3、延迟任务执行时机及运行线程

A:延迟任务会在应用满足应用设定条件(包括网络类型、充电类型、存储状态、电池状态、定时状态)时,根据系统当前状态,由系统统一决策调度时间。回调onWorkStart和onWorkStop是运行在WorkSchedulerExtensionAbility新起的进程中。

4、如何申请多个长时任务

A:同一时刻,一个UIAbility只能申请运行一个长时任务,需要创建多个UIAbility根据不同种类的长时任务分别申请;不同时刻可以申请不同种类的长时任务。

5、应用运行时进程资源使用规格

A:内存:资源配额2G。当内存使用连续1分钟超过2G,前台告警,后台结束进程。

CPU:

  • 后台10分钟单核平均使用率高于10%,结束进程。

  • 后台20分钟单核平均使用率高于7.5%,结束进程。

  • 后台60分钟单核平均使用率高于2.5%,结束进程。

  • 后台120分钟单核平均使用率高于1.3%,结束进程。

  • IO:资源配额1G,进程重启后配额清零。

6、如何确认延迟任务是否申请成功

A:startWork成功之后,可以通过以下命令验证延迟任务是否申请成功,如果hidumper命令返回结果中包含对应应用的bundleName、abilityName、workId,说明对应workId的延迟任务申请成功。

hdc shell hidumper -s 1904 -a '-a'

7、如何确认延迟任务WorkSchedulerExtensionAbility回调方法onWorkStart、onWorkStop实现是否正确、是否可以成功回调

A:延迟任务申请成功之后,执行延迟任务回调需要等到条件满足之后,为了快速验证延迟任务回调功能是否正确,可以通过以下hidumper命令手动触发延迟任务执行回调。

hdc shell hidumper -s 1904 -a '-t com.hmos.workschedulerdemo MyWorkSchedulerExtensionAbility'

com.hmos.workschedulerdemo、MyWorkSchedulerExtensionAbility需要替换为需要查询应用的bundleName和abilityName。

8、如何查询后台任务中短时任务/长时任务/延迟任务/后台代理提醒相关的系统日志

A:以短后台任务中短时任务为例。可以在日志中通过过滤关键字“C01711/TRANSIENT_TASK”来查询短时任务的状态情况,包括查询申请短时任务状态、查询对应短时任务的剩余时间和取消短时任务状态等。

点击放大

  • “request suspend success ...”:表示短时任务申请成功。

  • “get remain time pkg ...”:表示对应短时任务的剩余时间。

  • “cancet suspend delay ...”:表示短时任务取消成功。

更多后台任务中日志标识:

说明

  • 短时任务:TRANSIENT_TASK

  • 长时任务:CONTINUOUS_TASK

  • 延迟任务:WORK_SCHEDULER

  • 后台代理提醒:ANS_REMINDER

9、系统对前台应用的内存是否有限制,ArkTS占用和Native占用内存的限制是多少

A:资源调度子系统对前台应用的内存没有限制,只管控进程后台的内存使用异常情况。

资源调度子系统不处理ArkTS占用的内存,Native进程内存占用没有做限制,但是占用过大会有被内核的OOM查杀的风险。

更多详情查看:文档中心

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值