后台工作
后台任务是指应用在未显示在前台时需要执行的任何任务,例如从服务器获取数据或处理图像。
驾驭后台执行的复杂性是构建“好公民”应用的关键——即在所有设备上都能良好运行、稳健、响应迅速且高效的应用。
关键解决方案
一些用于在后台执行任务的更常见的 API 和工具包括 WorkManager、前台服务、闹钟 (Alarms) 和广播。每种解决方案对用户设备的电池续航时间都会产生不同的影响。
WorkManager
WorkManager 是 Android 上处理持久性后台任务的推荐解决方案。了解如何使用这个强大的库来调度在应用重启和设备重启后依然有效的任务,并了解其在处理约束条件和灵活重试策略方面的关键特性。
前台服务 (Foreground Services)
前台服务提供了一种强大的方式来立即运行不应被中断的任务。了解何时以及如何通过持久性通知来声明、启动和停止前台服务,以确保您的应用执行关键任务时不会被系统终止。
闹钟
闹钟是调度基于时间任务的关键工具。本页面解释了如何使用 AlarmManager 为必须在特定时间或指定窗口内运行的任务调度精确和非精确闹钟,即使应用未运行时也是如此。它还涵盖了管理闹钟并确保其针对电池寿命进行优化的最佳实践。
广播
了解如何发送和接收广播以处理系统事件及来自其他应用的消息。您还将了解上下文注册接收器和清单声明接收器,以及适用于它们的现代系统限制。
按用例分类的后台指南
正确的解决方案取决于您的用例。Android 提供了许多针对特定任务的 API,它们针对特定场景进行了优化,并且通常比使用 WorkManager 和前台服务能带来更多的电量节省和更少的限制。
本节列出了一些更常见的用例及推荐的解决方案。
步数追踪
如需在移动设备上追踪步数,请考虑从 Health Connect 读取步数,这是 Android 存放健康与健身数据的仓库。
用户发起的后台数据传输
对于涉及数据传输(包括下载和上传)且旨在让用户了解进度、由用户发起的后台任务,请使用“用户发起的数据传输”任务类型 (User-Initiated-Data Transfer Job)。此任务类型针对长时间运行的数据传输进行了优化,并被系统赋予了优先级。
媒体播放
使用 Media3 库来支持应用在用户不可见时的后台播放。
了解电源优化
考量后台任务对电量的影响对于创建高质量的 Android 应用至关重要。通过了解系统如何管理资源,您可以构建更稳健且更省电的应用。针对电量进行优化可以减少电池消耗,防止您的应用被系统终止,并提供更流畅的用户体验。
指南
了解电源管理资源限制
系统会根据设备状态、应用状态和应用待机存储桶 (Standby Bucket) 来确定应用资源请求的优先级。
进一步了解您的应用如何能在设备的电源管理资源限制范围内,可靠地执行后台任务。
指南
针对低电耗模式和应用待机进行优化
了解如何调整您的应用以适应“低电耗模式”(Doze) 和“应用待机”(App Standby),从而提高电池效率并增强用户体验。通过了解这些省电模式,您可以确保应用在运行时达到最优,同时最大限度地减小其对设备电池续航的影响。
指南
测试电量相关问题
从 Android 9 开始,设备具备影响所有应用的电源管理功能。了解如何测试您的应用以确保其在所有设备上都能正常运行,包括在启用电池省电模式、应用待机存储桶和后台限制等功能时。