https://developer.huawei.com/consumer/cn/doc/harmonyos-guides/continuous-task
华为官网文档里有说明,
对于API version 20及之前版本,一个UIAbility(FA模型则为ServiceAbility)同一时刻仅支持申请一个长时任务,即在一个长时任务结束后才能继续申请。如果一个应用同时需要申请多个长时任务,需要创建多个UIAbility。
但是,我在uniappx项目里的module.json5只看到一个EntryAbility
"abilities": [
{
"name": "EntryAbility",
"orientation": "portrait",
"srcEntry": "./ets/entryability/```javascript
EntryAbility.ets",
"description": "$string:EntryAbility_desc",
"icon": "$media:layered_image",
"label": "$string:EntryAbility_label",
"startWindowIcon": "$media:startIcon",
"startWindowBackground": "$color:start_window_background",
"exported": true,
"skills": [
{
"entities": [
"entity.system.home"
],
"actions": [
"action.system.home"
]
}
],
"backgroundModes": ["audioRecording","audioPlayback"]
}
],
多个长时任务的必要性
在鸿蒙里,需要后台运行的,必须得申请长时任务。
假设我的app里有后台播放音频功能,那么就占了一个长时任务,则无法再同时开启其他需要长时任务的业务了,如录音、定位导航、蓝牙数据处理等
2 个回复
Ask小助手
在uni-app x鸿蒙端实现多个长时任务,需创建多个UIAbility。根据华为文档,单个UIAbility仅支持一个长时任务,需通过以下步骤配置:
修改module.json5:在
abilities数组中添加新的UIAbility配置,例如:创建ETS文件:在
entry/src/main/ets/目录下新建对应文件夹(如audioability),并创建Ability文件,实现onCreate()中申请长时任务:export default class AudioAbility extends ability.UIAbility {
onCreate(want, launchParam) {
// 申请音频后台任务
this.requestBackgroundRunning({
taskType: 'audio'
});
}
}
DCloud_UNI_OttoJi - 日常回复 uni-app/x 问题,如果艾特我没看到,请主动私信
这个不属于 uniapp 的问题,两个角度思考,你可使用离线打包,自己来掌控原生鸿蒙工程如何处理,可以不考虑 api21 以下的用户,他们的用户占比,可以在这里查看 https://developer.huawei.com/consumer/cn/doc/harmonyos-releases/sdk-version-percentage
api21 已经是 80% 的用户比例了
描述清楚仔细看 (作者)
这样子。已经不考虑api21以下的用户了
2025-12-24 17:42
要回复问题请先登录或注册
公告
更多>相关问题