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

相關新聞

taskt:零代碼桌面自動化工具完全指南

taskt:零代碼桌面自動化工具完全指南

taskt:零代碼桌面自動化工具完全指南 【免費下載鏈接】taskt taskt (pronounced tasked and formely sharpRPA) is free and open-source robotic process automation (rpa) built in C# powered by the .NET Framework 項目地址: https://gitcode.com/gh_mirrors…

2026/7/29 20:08:44 閱讀更多
3步打造智能媒體庫:MetaTube插件完全指南

3步打造智能媒體庫:MetaTube插件完全指南

3步打造智能媒體庫:MetaTube插件完全指南 【免費下載鏈接】jellyfin-plugin-metatube MetaTube Plugin for Jellyfin/Emby 項目地址: https://gitcode.com/gh_mirrors/je/jellyfin-plugin-metatube MetaTube插件是專為Jellyfin和Emby媒體服務器設計的智能元數…

2026/7/29 20:08:44 閱讀更多