如果應用程式在背景連線到行動網路,應用程式便會喚醒 CPU 並開啟無線電。重複進行此操作可能會消耗裝置的電池電力。如果應用程式處於 PROCESS_STATE_BACKGROUND
或 PROCESS_STATE_CACHED
狀態,系統就視為在背景執行。
本頁面將說明如何判定是什麼原因造成應用程式在背景執行時使用過多行動網路,以及相關解決方法。
偵測問題
您可能永遠都不會知道應用程式有在背景執行時網路用量異常的問題。如果您已經發布應用程式,Android Vitals 可以讓您注意並進而修正這個問題。
Android Vitals
Android Vitals 會透過 Play 管理中心在應用程式於背景使用過多行動網路時發出提醒,藉此改善應用程式的效能。
如果應用程式在背景執行時,每日收發資料量總共 50 MB,Android Vitals 就會認定背景網路用量過大。您可以在 Play 管理中心查看出現此行為的「電池工作階段」百分比。
「電池工作階段」的定義按照各平台版本而有不同。
- 在 Android 10 上,電池工作階段是指系統在指定的 24 小時內,根據收到的所有電池報告彙整而成的時間資料。「電池報告」指的是電池兩次充電 (從低於 20% 充至 80% 以上,或是從任意值充至 100%) 之間的間隔時間。
- 在 Android 11 上,電池工作階段固定為 24 小時。
如要瞭解 Google Play 如何收集 Android Vitals 資料,請參閱 Play 管理中心說明文件。
調查行動網路使用行為
Battery Historian 這類工具可以幫助您深入瞭解應用程式的行動網路使用行為。Battery Historian 可以用視覺方式呈現每個應用程式的行動無線電使用行為,讓您更能清楚瞭解應用程式的運作情形。如要進一步瞭解 Battery Historian,請參閱「使用 Battery Historian 分析電源使用情況」一文。調查應用程式行動網路使用行為時,請特別注意「Mobile network use」(行動網路使用) 這一行。
如果想瞭解 Battery Historian 的使用機制,請參閱「Batterystats 和 Battery Historian 逐步操作說明」。
減少行動網路用量
您可以把應用程式的行動網路使用行為移到前景執行,警告使用者注意目前正在進行下載作業,並讓使用者控制是否要暫停或停止下載作業。方法是呼叫 DownloadManager
,然後按照需求設定 setNotificationVisibility(int)
。