• Home
Name Date Size #Lines LOC

..--

AppScope/06-May-2025-3633

entry/06-May-2025-1,3701,176

hvigor/06-May-2025-2221

screenshots/device/06-May-2025-

.gitignoreD06-May-2025143 1211

README_zh.mdD06-May-20253.6 KiB7351

build-profile.json5D06-May-20251.1 KiB4342

hvigorfile.jsD06-May-2025168 21

hvigorwD06-May-20252 KiB6228

hvigorw.batD06-May-20252 KiB7356

oh-package.json5D06-May-2025819 2625

ohosTest.mdD06-May-20251,008 1513

README_zh.md

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|![image](screenshots/device/start.png) |![image](screenshots/device/stop.png)|
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```