HarmonyOS應用開發實戰:貓貓大作戰-背景任務的申請與 BG 模式
前言backgroundTasksKit提供了后臺任務能力允許應用在后臺持續運行有限時長。在「貓貓大作戰」中當游戲進行中用戶切到后臺時我們需要申請后臺任務讓游戲繼續運行或者至少保存當前狀態。一、后臺任務申請import{backgroundTaskManager}fromkit.BackgroundTasksKit;asyncfunctionrequestBackgroundRunning(context:Context):Promisevoid{try{awaitbackgroundTaskManager.startBackgroundRunning(context,backgroundTaskManager.BackgroundMode.AUDIO_PLAYBACK);console.info(后臺運行已申請);}catch(err){console.error(后臺運行申請失敗:${err.message});}}asyncfunctionstopBackgroundRunning(context:Context):Promisevoid{try{awaitbackgroundTaskManager.stopBackgroundRunning(context);console.info(后臺運行已停止);}catch(err){console.error(停止后臺運行失敗:${err.message});}}二、支持的 BackgroundMode模式說明游戲中使用AUDIO_PLAYBACK音頻播放背景音樂繼續播放LOCATION定位地理位置排行DATA_TRANSFER數據傳輸戰績同步TASK短暫任務狀態保存三、在游戲中的集成onBackground(){if(this.gameStateGameState.PLAYING){// 申請后臺運行保存游戲狀態requestBackgroundRunning(getContext()asContext);// 暫停游戲循環this.gameStateGameState.PAUSED;this.clearTimers();// 保存游戲快照AppStorage.setOrCreate(savedGame,{score:this.score,cats:this.cats,gameTime:this.gameTime,});}}onForeground(){stopBackgroundRunning(getContext()asContext);// 恢復游戲狀態constsavedAppStorage.getSavedGame(savedGame);if(savedthis.gameStateGameState.PAUSED){this.scoresaved.score;this.catssaved.cats;this.gameTimesaved.gameTime;this.resumeGame();}}四、限制說明限制說明單次最長3 分鐘普通任務/ 更長音頻任務每日配額系統根據使用頻率動態分配必須用戶可見時申請切后臺前后臺任務電量影響長時間后臺運行會顯著增加耗電五、最佳實踐僅必要時申請只在游戲進行中切后臺時申請回前臺立即停止在onForeground中調用stopBackgroundRunning狀態保存后臺任務首要目標是保存游戲狀態音頻模式保活帶 BGM 時用AUDIO_PLAYBACK模式總結backgroundTasksKit 的后臺任務能力讓游戲在切后臺時保存狀態。核心要點startBackgroundRunning申請、BackgroundMode根據用途選擇、 回前臺立即停止、 優先保存游戲狀態。如果這篇文章對你有幫助歡迎點贊、收藏?、關注你的支持是我持續創作的動力相關資源backgroundTaskManager API后臺任務開發指南第 160 篇Payment第 162 篇bg-running

相關新聞

AG Kit工作流模板:快速構建常見開發流程的示例

AG Kit工作流模板:快速構建常見開發流程的示例

AG Kit工作流模板:快速構建常見開發流程的示例 【免費下載鏈接】ag-kit 項目地址: https://gitcode.com/GitHub_Trending/an/ag-kit AG Kit是一個模塊化AI代理工具包(Modular AI Agent Toolkit),提供了豐富的工作流模板&a…

2026/8/1 0:04:42 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費下載鏈接】GetQzonehistory 獲取QQ空間發布的歷史說說 項目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南

3分鐘搞定!QQ空間歷史說說完整備份終極指南 【免費下載鏈接】GetQzonehistory 獲取QQ空間發布的歷史說說 項目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想過,那些年發過的QQ空間說說,那些記錄青春的文字…

2026/8/2 0:04:01 閱讀更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是應用材料(Applied Materials)公司生產的一款用于半導體設備的I/O信號分配電路板。該型號(0100-02186)的核心特點如下:專用于Endura等半導體工藝腔室。集成信號路由與分配功能。連接控制…

2026/8/2 2:51:21 閱讀更多
Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機

Nissei Corp FFMN-32L-10-T0 40AX 三相異步電動機是日本日清(Nissei)品牌的一款工業用三相異步電機,適用于自動化設備及通用機械驅動。該型號(FFMN-32L-10-T0 40AX)的核心特點如下:三相交流異步電動機。額定…

2026/8/2 2:52:49 閱讀更多