后台过度使用移动网络

当应用程序在后台连接到移动网络时,应用程序会唤醒 CPU 并打开无线电。重复执行此操作会导致设备的电池电量耗尽。如果应用程序处于 PROCESS_STATE_BACKGROUNDPROCESS_STATE_CACHED 状态,则认为应用程序正在后台运行。

本页面说明了如何确定您的应用程序在后台运行时为什么过度使用移动网络,以及如何解决此问题。

检测问题

您可能并不总是知道您的应用程序在后台运行时过度使用网络。如果您已经发布了您的应用程序,Android 指标可以使您了解问题,以便您对其进行修复。

Android 指标

当您的应用程序在后台过度使用移动网络时,Android 指标可以通过 Play 管理中心 向您发出警报,从而帮助您提高应用程序的性能。

当应用程序在后台运行时,每天发送和接收的总量达到 50 MB 时,Android 指标认为后台网络使用过量。您可以在 Play 管理中心中检查表现出这种行为的电池会话的百分比。

电池会话的定义取决于平台版本。

  • 在 Android 10 中,电池会话是给定 24 小时内收到的所有电池报告的汇总。电池报告指的是两次电池充电之间的时间间隔,无论是从低于 20% 充电到高于 80%,还是从任何电量水平充电到 100%。
  • 在 Android 11 中,电池会话是一个固定的 24 小时周期。

有关 Google Play 如何收集 Android 指标数据的更多信息,请参阅 Play 管理中心 文档。

调查移动网络使用行为

诸如 Battery Historian 之类的工具可以帮助您深入了解应用程序的移动网络使用情况。Battery Historian 提供了基于应用程序的移动无线电使用情况可视化,这有助于您更清楚地了解应用程序中发生的情况。有关 Battery Historian 的更多信息,请参阅 使用 Battery Historian 分析功耗。在调查应用程序的移动网络使用行为时,您应特别注意 移动网络使用 行。

有关使用 Battery Historian 的机制的信息,请参阅 Batterystats 和 Battery Historian 演练

减少移动网络使用量

您可以将应用程序的移动网络使用量移至前台,提醒用户正在进行下载,并为他们提供暂停或停止下载的控制。为此,请调用 DownloadManager,并根据需要设置 setNotificationVisibility(int)