資料移轉背景工作選項

Many apps need to transfer data in the background. This page helps you find the right approach for your needs.

遷移應用實例

本節說明應用程式需要轉移的常見情況 資料,並協助您為客戶選擇 情境。

透過網路傳輸資料

如果轉移作業是由使用者啟動,您需要保留該使用者 且提前掌握轉移進度的資訊,採用由使用者啟動的資料轉移程序 API否則,請使用 WorkManager適當的前景服務類型

如需排定下載時間,您也可以使用 DownloadManagerDownloadManager 會管理應用程式的 以及在故障後重新嘗試下載、裝置重新啟動 以及網路連線的變化不過,DownloadManager 並未提供 偵錯及測試 WorkManagerJobScheduler

將資料移入或移出本機裝置

使用特定 API (例如隨附裝置) 管理員);否則,請使用 connectedDevice 前景 服務

媒體轉碼

使用新的 mediaProcessing 前景服務類型

完成簡短而重要的任務

使用 shortService 前景服務

處理檔案,例如將資料移入或移出 SD 卡、調整內容大小,或是加密或解密資料

如果工作能在三分鐘內完成,請使用 shortService 前景服務。否則,請使用 WorkManager

使用 User-Initiated Data Transfer Jobs API

如果您的應用程式需要將資料轉移到遠端伺服器,建議您使用 新的 User-Initiated Data Transfer Jobs API。如果開發人員 以下為 true:

  • 使用者已開始轉移資料
  • 您需要通知使用者資料轉移進度通知
  • 如果系統中斷轉移作業,會對使用者體驗造成負面影響

如不符合上述任一條件,則應使用 WorkManager

舉例來說,媒體應用程式可能會讓使用者下載專輯在本機播放。如果 使用者想要下載播放清單並立即播放,建議您使用 User-Initiated Data Transfer Jobs API。另一方面,如果使用者希望 已下載播放清單,以便在無使用者的情況下定期在背景更新 此時 WorkManager 會是更好的選擇

詳情請參閱將前景服務遷移至 User-Initiated Data Transfer Jobs

使用 WorkManager

在大多數情況下,需要安排工作時間時,WorkManager 是最佳選擇。 設計工作時,必須讓工作能夠中斷或延遲 由系統執行詳情請參閱 WorkManager 說明文件

從前景改用 Pixel 時,下列附註可能對您有所幫助 將服務傳送至 WorkManager

  • 若您希望盡快執行該工作,可以排定 加快工作要求速度。如果您用的是 安排工作時間,以回應廣播、精確鬧鐘或 高優先順序 FCM 訊息
  • 如果您需要定期執行工作,可以安排定期執行 工作。定期工作要求可讓您「大致」指定 工作仍會執行,但不保證能在特定時間執行。如此一來 排定不同應用程式的工作要求,在需求之間取得平衡 應用程式。
  • 您必須定義工作限制條件,指定正確的值 執行工作舉例來說,如果應用程式需要 可以指定工作執行時,應執行 裝置正在充電並連上非計量付費網路。WorkManager 可以 然後在平衡系統負載的時間執行工作。
  • WorkManager 可以視需要取消並重試工作。例如: 使用者可能會在工作執行期間關閉裝置;系統可以 並在裝置恢復運作時重試工作。確保設計 並測試工作流程,確認取消重試週期可正常運作 正確做法。
,瞭解如何調查及移除這項存取權。

使用更具體的前景服務類型

如果您無法改成其他執行背景工作的方式, 就需要使用前景服務在這種情況下,您可以找到 使用的服務類型來取代 dataSync。由於您的程式碼已使用 前景服務,這項遷移作業相當簡單。你只需要選擇 適當的前景服務類型,並確保您的應用程式符合 服務需求

一如以往,考慮使用前景服務時, 思考是否有更符合使用需求的替代 API 確認是否屬於此情況

使用短期服務前景服務

如果您的應用程式需要執行短期的重要工作,即 shortService 前景 這或許是最佳選擇以下是一些shortService 下列可能是合適的前景服務:

  • 使用者開始執行特定動作 (例如將資料同步到伺服器), 確保作業已經完成,即使使用者立即將 移到背景
  • 正在將記憶體內資訊儲存至永久儲存空間。
  • 加密或解密資訊。

詳情請參閱 shortService 說明文件

使用已連結裝置的前景服務

如要將資料轉移到另一部本機裝置,建議使用 connectedDevice 前景服務。以下是一些常見情況 需具備的操作:

  • 透過藍牙配件 (例如耳機或智慧手錶) 通訊
  • 透過 USB 連線、NFC 或本地網際網路連線

不過,在這種情況下,您或許可以使用隨附裝置 Manager 能與裝置連線,而不是使用前景服務。 一如往常,如果某個特殊用途 API 適用於您的用途 這通常會比前景服務更好。

使用新版媒體處理前景服務

如需處理媒體資料,可以使用新的mediaProcessing 前景服務。如果您的應用程式指定 Android 版本,即可使用此服務類型 15 以上版本。舉例來說,如果 應用程式需要將媒體轉碼成另一種格式才能播放。適用對象 如需更多資訊,請參閱 媒體處理前景服務說明文件

其他資源

如要進一步瞭解這項前景服務異動,請參閱以下內容 其他資源: