1# 长时任务 2 3### 介绍 4 5本示例展示后台任务的长时任务。通过使用[@ohos.resourceschedule.backgroundTaskManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-backgroundtasks-kit/js-apis-resourceschedule-backgroundTaskManager.md)实现后台播放音乐时避免进入挂起(Suspend)状态。 6 7### 效果预览 8 9|进入长时任务 |退出长时任务 | 10|---------------------------------------|-------------------------------------| 11| || 12 13使用说明 14 15场景一:后台播放音乐 16 171.进入应用,点击播放,退出音乐界面推送至后台执行; 18 192.再次进入应用,音乐播放进度条显示正常; 20 213.点击暂停播放,取消长时任务。 22 23### 工程目录 24``` 25entry/src/main/ets/ 26|---Application 27| |---MyAbilityStage.ets 28|---feature 29| |---BackgroundPlayerFeature.ts // 后台播放 30|---MainAbility 31| |---MainAbility.ts 32|---mock 33| |---BackgroundPlayerData.ts // 数据定义 34|---model 35| |---ContinuousTaskModel.ets // 长时任务 36|---pages 37| |---BackgroundPlayer.ets // 首页 38|---util 39| |---Logger.ts // 日志打印 40``` 41### 具体实现 42 43* 该示例使用startBackgroundRunning方法向系统申请长时任务,stopBackgroundRunning方法向系统申请取消长时任务,getWantAgent方法创建一个WantAgent,createAudioPlayer方法创建一个视频播放实例,createAVSession方法创建一个会话对象,fileIo.open方法打开文件等接口实现后台音乐播放。 44* 源码链接:[BackgroundPlayerFeature.ts](entry/src/main/ets/feature/BackgroundPlayerFeature.ts),[BackgroundPlayerData.ts](entry/src/main/ets/mock/BackgroundPlayerData.ts),[ContinuousTaskModel.ets](entry/src/main/ets/model/ContinuousTaskModel.ets) 45* 接口参考:[@ohos.resourceschedule.backgroundTaskManager](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-backgroundtasks-kit/js-apis-resourceschedule-backgroundTaskManager.md),[@ohos.multimedia.media](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-media-kit/js-apis-media.md),[@ohos.multimedia.avsession](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-avsession-kit/js-apis-avsession.md),[@ohos.fileio](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-core-file-kit/js-apis-fileio.md),[@ohos.app.ability.wantAgent](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-ability-kit/js-apis-app-ability-wantAgent.md) 46 47### 相关权限 48 49[ohos.permission.KEEP_BACKGROUND_RUNNING](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/security/AccessToken/permissions-for-all.md#ohospermissionkeep_background_running) 50 51### 依赖 52 53不涉及。 54 55### 约束与限制 56 571.本示例仅支持标准系统上运行,支持设备:RK3568; 58 592.本示例已适配API version 12版本SDK,版本号:4.1 Release; 60 613.本示例需要使用DevEco Studio 版本号(4.1 Release)及以上版本才可编译运行。 62 63### 下载 64 65如需单独下载本工程,执行如下命令: 66``` 67git init 68git config core.sparsecheckout true 69echo code/BasicFeature/TaskManagement/ContinuousTask/ > .git/info/sparse-checkout 70git remote add origin https://gitee.com/openharmony/applications_app_samples.git 71git pull origin master 72 73```