公司动态
HarmonyOS应用开发实战:猫猫大作战-持续后台运行
前言startBackgroundRunning是 BackgroundTasksKit 中申请持续后台运行的 API。在「猫猫大作战」中切后台时申请后台运行保存游戏状态。一、申请后台运行import { backgroundTaskManager } from kit.BackgroundTasksKit; async function startBgRunning(context: Context): Promisevoid { try { await backgroundTaskManager.startBackgroundRunning(context, backgroundTaskManager.BackgroundMode.AUDIO_PLAYBACK ); console.info(后台运行已启动); } catch (err) { console.error(后台启动失败: ${err.message}); } } async function stopBgRunning(context: Context): Promisevoid { try { await backgroundTaskManager.stopBackgroundRunning(context); console.info(后台运行已停止); } catch (err) { console.error(停止失败: ${err.message}); } }二、后台模式模式说明游戏中使用AUDIO_PLAYBACK音频播放BGM 持续播放DATA_TRANSFER数据传输自动保存LOCATION定位城市排行TASK短暂任务游戏状态保存三、生命周期管理onBackground() { if (this.gameState GameState.PLAYING) { startBgRunning(getContext() as Context); this.gameState GameState.PAUSED; this.clearTimers(); this.saveGameState(); } } onForeground() { stopBgRunning(getContext() as Context); if (this.savedState) { this.restoreGameState(); } }四、限制说明限制说明时长音频模式较长普通任务 3 分钟电量显著增加耗电配额系统根据使用频率分配必须前台申请用户可见时调用五、最佳实践仅必要时申请游戏进行中切后台回前台立即停止onForeground中停止音频模式保活带 BGM 使用 AUDIO_PLAYBACK状态保存优先后台首要任务是保存数据总结startBackgroundRunning 申请后台持续运行保存游戏状态。核心要点BackgroundMode选择模式、onBackground/onForeground管理生命周期、 回前台立即停止。如果这篇文章对你有帮助欢迎点赞、收藏⭐、关注你的支持是我持续创作的动力相关资源backgroundTaskManager API第 161 篇bg-task第 163 篇workScheduler第 164 篇reminder