通常情况下,快应用在切换到后台后会释放相关资源。但对于音乐/运动等类型的快应用,用户希望其能继续留在后台运行以便继续播放音乐或继续定位。为满足此类需求,增加了对后台运行的支持。
快应用切换到后台运行分为2种场景:用户按home键进入桌面和按back键退出快应用。
- 按home键进入桌面:华为快应用引擎支持快应用直接进入后台运行,无需做任何配置。
- 按back键退出快应用:系统将检查是否满足后台运行的条件,如果满足快应用切到后台将继续运行。必须同时满足以下3点:
- manifest.json 中声明了后台运行接口
- 当前是快应用的最后一个页面(否则继续执行退出当前页面的逻辑)
- 当前至少有一个后台运行接口(已在 manifest.json 中声明的接口)正在运行
实践建议
- 后台运行需要消耗较多的系统资源,快应用需要根据自身需求谨慎使用。
- 需要后台运行的接口建议放到 app.ux 中,而不是放到页面中,以免页面切换和销毁的影响。(对于audio模块也可以在需要音乐播放的所有页面都声明audio模块,在每个页面通过onshow函数来实现每个页面的切换上下曲、暂停、播放等回调函数)
配置方法
在 manifest.json 中声明所需的后台运行接口,包括:
- 音频播放:system.audio
- 录音:system.record
- 上传下载:system.request
- 地理位置:system.geolocation
{
"package": "com.huawei.sample",
......
"config": {
"logLevel": "trace",
"background": {
"features":[
"system.audio",
"system.record",
"system.request",
"system.geolocation"
]
}
......
} 调用接口
详细内容参见“后台运行”,resident.start 和 resident.stop 均为空实现。
[h2]需要申请访问的接口
此类接口需要在 manifest.json 的 background 中声明后,并且只有在退出快应用时正在调用如下几个接口时,快应用才可以进入后台运行状态。 例如:音频(system.audio),录音(system.record),地理位置(system.geolocation),上传下载(system.request)。
[h2]可直接访问的接口
当快应用处于后台运行时,所有接口均可以调用
[h2]接口
resident.start 和 resident.stop 均为空实现,使用接口时在manifest文件中申请即可。
[h2]通知栏
- 开发者在resident.start传入的文案不会显示在通知栏。
- 联盟所有的后台运行通知复用同一条通知栏通知,华为录音、下载使用系统通知,上传不显示通知 ,地理位置监听使用快应用引擎自行提示的通知。
[h2]停止后台运行
华为不限制20s就停止后台运行功能。