后台任务是指应用在未显示在前台时需要执行的任何任务,例如从服务器获取数据或处理图像。

驾驭后台执行的复杂性是构建“好公民”应用的关键——即在所有设备上都能良好运行、稳健、响应迅速且高效的应用。

开始使用后台任务

查看关于为您的用例选择合适的后台任务 API 的指南,并结合 Android 的进程和应用生命周期进行考量。
指南
选择合适的后台任务 API 可能很复杂。本页面为您提供了关于何时使用异步任务、WorkManager、前台服务或其它替代方案的明确指导。了解哪种 API 最适合您的特定用例。
指南
探索 Android 进程生命周期的基本概念及其对应用行为和资源管理的影响。了解系统如何根据 Activity 状态管理应用进程,使您能够设计出能够优雅地应对系统发起的中止操作、稳健且高效的应用。

关键解决方案

一些用于在后台执行任务的更常见的 API 和工具包括 WorkManager、前台服务、闹钟 (Alarms) 和广播。每种解决方案对用户设备的电池续航时间都会产生不同的影响。
WorkManager 是 Android 上处理持久性后台任务的推荐解决方案。了解如何使用这个强大的库来调度在应用重启和设备重启后依然有效的任务,并了解其在处理约束条件和灵活重试策略方面的关键特性。
前台服务提供了一种强大的方式来立即运行不应被中断的任务。了解何时以及如何通过持久性通知来声明、启动和停止前台服务,以确保您的应用执行关键任务时不会被系统终止。
闹钟是调度基于时间任务的关键工具。本页面解释了如何使用 AlarmManager 为必须在特定时间或指定窗口内运行的任务调度精确和非精确闹钟,即使应用未运行时也是如此。它还涵盖了管理闹钟并确保其针对电池寿命进行优化的最佳实践。
了解如何发送和接收广播以处理系统事件及来自其他应用的消息。您还将了解上下文注册接收器和清单声明接收器,以及适用于它们的现代系统限制。

按用例分类的后台指南

正确的解决方案取决于您的用例。Android 提供了许多针对特定任务的 API,它们针对特定场景进行了优化,并且通常比使用 WorkManager 和前台服务能带来更多的电量节省和更少的限制。

本节列出了一些更常见的用例及推荐的解决方案。

大多数用例仅需要在用户与应用交互时获取位置信息。但是,如果您的应用需要在后台访问位置信息,请使用 Fused Location Provider API。利用此 API 获取缓存的最后已知位置,或请求定期位置更新。
当应用在后台时,通过使用更新方法高效地更新 GlanceAppWidgets。
使用低功耗蓝牙 (BLE) 在后台与外围设备通信。了解如何在遵守系统级限制和节省电量的同时,扫描、连接并保持与设备的持久连接。
如需在移动设备上追踪步数,请考虑从 Health Connect 读取步数,这是 Android 存放健康与健身数据的仓库。
对于涉及数据传输(包括下载和上传)且旨在让用户了解进度、由用户发起的后台任务,请使用“用户发起的数据传输”任务类型 (User-Initiated-Data Transfer Job)。此任务类型针对长时间运行的数据传输进行了优化,并被系统赋予了优先级。
使用 Media3 库来支持应用在用户不可见时的后台播放。

了解电源优化

考量后台任务对电量的影响对于创建高质量的 Android 应用至关重要。通过了解系统如何管理资源,您可以构建更稳健且更省电的应用。针对电量进行优化可以减少电池消耗,防止您的应用被系统终止,并提供更流畅的用户体验。
指南

系统会根据设备状态、应用状态和应用待机存储桶 (Standby Bucket) 来确定应用资源请求的优先级。

进一步了解您的应用如何能在设备的电源管理资源限制范围内,可靠地执行后台任务。

指南
您的应用可能需要阻止设备 CPU 进入挂起状态以完成关键任务。本指南可帮助您选择保持设备唤醒的最合适方法。
指南
了解如何调整您的应用以适应“低电耗模式”(Doze) 和“应用待机”(App Standby),从而提高电池效率并增强用户体验。通过了解这些省电模式,您可以确保应用在运行时达到最优,同时最大限度地减小其对设备电池续航的影响。
指南
从 Android 9 开始,设备具备影响所有应用的电源管理功能。了解如何测试您的应用以确保其在所有设备上都能正常运行,包括在启用电池省电模式、应用待机存储桶和后台限制等功能时。

最新资讯