• Home
Name Date Size #Lines LOC

..--

AppScope/12-May-2024-3633

entry/12-May-2024-1,3491,155

hvigor/12-May-2024-2422

screenshots/device/12-May-2024-

.gitignoreD12-May-2024143 1211

README_zh.mdD12-May-20243.8 KiB7552

build-profile.json5D12-May-20241 KiB4241

hvigorfile.jsD12-May-2024168 21

hvigorwD12-May-20242 KiB6228

hvigorw.batD12-May-20242 KiB7356

oh-package.json5D12-May-2024819 2625

ohosTest.mdD12-May-20241,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/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/js-apis-resourceschedule-backgroundTaskManager.md),[@ohos.multimedia.media](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-media.md),[@ohos.multimedia.avsession](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-avsession.md),[@ohos.fileio](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/js-apis-fileio.md),[@ohos.app.ability.wantAgent](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis/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/permission-list.md#ohospermissionkeep_background_running)
50
51### 依赖
52
53不涉及。
54
55### 约束与限制
56
571.本示例仅支持标准系统上运行,支持设备:RK3568;
58
592.本示例已适配API version 9版本SDK,版本号:3.2.11.9;
60
613.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)及以上版本才可编译运行;
62
634.本示例需要使用系统权限的接口。使用Full SDK时需要手动从镜像站点获取,并在DevEco Studio中替换,具体操作可参考[替换指南](https://docs.openharmony.cn/pages/v3.2/zh-cn/application-dev/quick-start/full-sdk-switch-guide.md/)64
65### 下载
66
67如需单独下载本工程,执行如下命令:
68```
69git init
70git config core.sparsecheckout true
71echo code/BasicFeature/TaskManagement/ContinuousTask/ > .git/info/sparse-checkout
72git remote add origin https://gitee.com/openharmony/applications_app_samples.git
73git pull origin master
74
75```