通常可以改用更好的替代方案,而不使用 dataSync
前景服務。本文件可協助您找出適用於您的用途的最佳替代方案。
遷移用途
本節說明應用程式目前可能使用 dataSync
前景服務的一些常見情況,以及我們建議的替代方案。
- 透過網路轉移資料
- 如果轉移作業是由使用者啟動,「且」您需要讓使用者掌握轉移作業進度,請使用使用者啟動的資料移轉作業 API。否則,請使用 WorkManager。
- 將資料轉移到本機裝置,或從本機裝置轉移資料
- 使用特定 API (例如隨附裝置管理員) 時;否則,請使用
connectedDevice
前景服務。 - 正在轉碼媒體
- 使用新的
mediaProcessing
前景服務類型。 - 完成小重要任務
- 使用
shortService
前景服務。 - 處理檔案 (例如將資料轉移到 SD 卡或從 SD 卡傳輸資料、調整內容大小,或是加密/解密資料)
- 如果工作可在三分鐘內完成,請使用
shortService
前景服務。否則,請使用 WorkManager。
使用使用者啟動的資料移轉 API
如果應用程式需要將資料轉移至遠端伺服器,建議您使用新的使用者啟動資料移轉 API。這些 API 適用於以下情況:
- 使用者開始轉移資料
- 您必須讓使用者知道資料移轉進度通知
- 如果系統中斷傳輸,會對使用者體驗造成負面影響
如果不符合上述任一條件,則應改為使用 WorkManager。
舉例來說,媒體應用程式可以讓使用者下載專輯在本機播放。如果使用者想下載播放清單並立即播放,建議您使用使用者啟動的資料移轉 API。另一方面,如果使用者希望下載的播放清單在背景定期更新,無需使用者啟動,那麼 WorkManager 也是更理想的做法。
詳情請參閱將前景服務遷移至使用者啟動的資料移轉工作相關說明文件。
使用 WorkManager
在大多數情況下,需要排定工作時間時,WorkManager 是最佳選擇。工作設計時,必須讓使用者能夠被系統中斷或延遲。詳情請參閱 WorkManager 說明文件。
從前景服務遷移至 WorkManager 時,您可以參考以下幾點注意事項:
- 如果您需要盡快執行工作,可以排定加急作業要求。當您為回應廣播、精確鬧鐘或高優先順序 FCM 訊息而安排工作時程時,這個選項就特別實用。
- 如果您需要執行工作,可以安排週期性工作。定期工作要求可讓您指定作業的「大致」執行頻率,但無法保證特定時間。如此一來,系統就能安排來自不同應用程式的工作要求,平衡裝置需求。
- 您應該定義工作限制條件,指定執行工作的適當時機。舉例來說,如果您的應用程式需要下載非緊急資源,您可以指定在裝置充電且連線至非計量付費網路時執行工作。WorkManager 可以在能平衡系統負載的時間執行工作。
- WorkManager 可以自由取消及視需要重試工作。例如,使用者可能會在工作執行期間關閉裝置;等到裝置恢復可用時,系統便會重試工作。請務必設計及測試工作流程,確保取消與重試的週期正常運作。
使用更具體的前景服務類型
如果您無法切換至其他執行背景工作的方式,可能還是需要使用前景服務。在這種情況下,您應尋找要使用的服務類型,而非 dataSync
。由於您的程式碼已採用前景服務,因此遷移作業十分簡單。您只需要選擇適當的前景服務類型,並確認應用程式符合該服務的需求即可。
一如以往,當您考慮使用前景服務時,也應該考量是否有更適合您用途的替代 API。
使用短期服務前景服務
如果您的應用程式需要執行簡短的重要工作,使用 shortService
前景服務或許是最佳選擇。以下是使用 shortService
前景服務的一些情況:
- 使用者會啟動動作 (例如將資料同步處理至伺服器),且即使使用者立即將應用程式傳送至背景,您希望確保作業已完成。
- 正在將記憶體內資訊儲存至永久儲存空間。
- 加密或解密資訊。
如需完整資訊,請參閱 shortService
說明文件。
使用已連結裝置的前景服務
如要將資料轉移至其他本機裝置,建議您使用 connectedDevice
前景服務。以下是一些常見的錯誤情況:
- 透過藍牙配件 (例如耳機或智慧手錶) 進行通訊
- 透過 USB 連線、NFC 或本機網際網路連線,將資料傳輸到本機連線的裝置
不過在這類情況下,您可以使用隨附裝置管理工具與裝置連線,而非使用前景服務。一如以往,如果特殊用途 API 適用於您的用途,通常比使用前景服務更理想。
使用新版媒體處理前景服務
如果您需要處理媒體資料,可以使用新的 mediaProcessing
前景服務。如果您的應用程式指定 Android 15 以上版本,即可使用此服務類型。舉例來說,如果應用程式需要將媒體從一種格式轉碼成其他格式以便播放,這種服務類型就十分適合。詳情請參閱媒體處理前景服務說明文件。
其他資源
如要進一步瞭解這項前景服務變更,請參閱下列其他資源: