許多應用程式都需要在背景傳輸資料。 本頁面可協助您找出最符合需求的做法。
遷移應用實例
本節說明應用程式需要轉移的常見情況 資料,並協助您為客戶選擇 情境。
- 透過網路傳輸資料
如果轉移作業是由使用者啟動,且您需要保留該使用者 且提前掌握轉移進度的資訊,採用由使用者啟動的資料轉移程序 API否則,請使用 WorkManager 或 適當的前景服務類型。
如需排定下載時間,您也可以使用
DownloadManager
。DownloadManager
會管理應用程式的 以及在故障後重新嘗試下載、裝置重新啟動 以及網路連線的變化不過,DownloadManager
並未提供 偵錯及測試WorkManager
和JobScheduler
。- 將資料移入或移出本機裝置
使用特定 API (例如隨附裝置) 管理員);否則,請使用
connectedDevice
前景 服務。- 媒體轉碼
- 完成簡短而重要的任務
- 處理檔案,例如將資料移入或移出 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 以上版本。舉例來說,如果
應用程式需要將媒體轉碼成另一種格式才能播放。適用對象
如需更多資訊,請參閱
媒體處理前景服務說明文件。
其他資源
如要進一步瞭解這項前景服務異動,請參閱以下內容 其他資源:
- 背景工作指南
- 網誌文章:改善背景工作的一致性 Android