文档管理中心
我的
API参考快应用框架后台运行

后台运行

通常情况下,快应用在切换到后台后会释放相关资源。但对于音乐/运动等类型的快应用,用户希望其能继续留在后台运行以便继续播放音乐或继续定位。为满足此类需求,增加了对后台运行的支持。

快应用切换到后台运行分为2种场景:用户按home键进入桌面和按back键退出快应用。

  • 按home键进入桌面:华为快应用引擎支持快应用直接进入后台运行,无需做任何配置。
  • 按back键退出快应用:系统将检查是否满足后台运行的条件,如果满足快应用切到后台将继续运行。必须同时满足以下3点:
  1. manifest.json 中声明了后台运行接口
  2. 当前是快应用的最后一个页面(否则继续执行退出当前页面的逻辑)
  3. 当前至少有一个后台运行接口(已在 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 均为空实现。

接口分类

需要申请访问的接口

此类接口需要在 manifest.json 的 background 中声明后,并且只有在退出快应用时正在调用如下几个接口时,快应用才可以进入后台运行状态。 例如:音频(system.audio),录音(system.record),地理位置(system.geolocation),上传下载(system.request)。

可直接访问的接口

当快应用处于后台运行时,所有接口均可以调用

和联盟实现差异点

接口

resident.start 和 resident.stop 均为空实现,使用接口时在manifest文件中申请即可。

通知栏

  • 开发者在resident.start传入的文案不会显示在通知栏。
  • 联盟所有的后台运行通知复用同一条通知栏通知,华为录音、下载使用系统通知,上传不显示通知 ,地理位置监听使用快应用引擎自行提示的通知。

停止后台运行

华为不限制20s就停止后台运行功能。