אפשרויות למשימות ברקע בנושא העברת נתונים

许多应用都需要在后台传输数据。 本页面可帮助您找到满足您需求的正确方法。

迁移用例

本部分介绍了应用需要转移数据的一些常见情况 数据传入或传出设备,还可帮助您根据自己的需求 情况。

通过网络传输数据

如果转移是由用户发起的,并且您需要保留用户 有关传输进度的信息,请使用用户发起的数据传输 API。否则,请使用 WorkManager适当的前台服务类型

如果您需要安排下载时间,还可以使用 DownloadManagerDownloadManager负责管理应用的 并负责在下载失败、设备重新启动、 以及网络连接方面的变化不过,DownloadManager并不提供 调试和测试功能(在 WorkManagerJobScheduler

将数据传输到本地设备或从中传输数据

使用特定的 API(如果有),例如配套设备 经理);否则,使用 connectedDevice 前景 服务

对媒体转码

使用新的 mediaProcessing 前台服务类型

完成一项简短的关键任务

使用 shortService 前台服务

处理文件(例如,将数据传输到 SD 卡或从 SD 卡传输数据、调整内容大小或加密或解密数据)

如果任务可以在三分钟内完成,请使用shortService 前台服务。否则,请使用 WorkManager

使用由用户发起的数据传输 API

如果您的应用需要将数据传输到远程服务器,您可能需要使用 新的用户发起的数据传输 API。如果 以下为 true:

  • 用户开始了数据传输
  • 您需要通知用户数据传输进度
  • 如果系统中断传输,则会对用户体验造成不利影响

如果不满足其中任何条件,您应该使用 WorkManager

例如,媒体应用可能允许用户下载专辑以在本地播放。如果 用户想下载播放列表并立即播放,则不妨使用 由用户发起的数据传输 API。另一方面,如果用户希望 下载的播放列表,以便在没有用户的情况下定期在后台更新 建议,使用 WorkManager。

如需了解详情,请参阅有关将前台服务迁移到 由用户发起的数据传输作业

使用 WorkManager

在大多数情况下,当您需要调度工作时,WorkManager 是最佳选择。 您必须将任务设计为可以中断或延迟 错误。如需了解详情,请参阅 WorkManager 文档

从前台迁移时,请注意以下事项 发送到 WorkManager:

  • 如果您需要尽快运行工作,可以安排 加急工作请求。 调度工作以响应广播、精确闹钟或 高优先级 FCM 消息。
  • 如果您需要定期运行工作,可以安排定期运行 工作。定期工作请求可让您大致指定 工作将会运行,但无法保证具体时间。这样, 系统调度来自不同应用的工作请求,以平衡需求 。
  • 您应定义工作约束条件来指定适当的 运行作业所需的条件例如,如果您的应用需要下载 非紧急资源,则可以指定作业在运行 设备正在充电并已连接到不按流量计费的网络。WorkManager 可以 然后在适当时间运行作业,以平衡系统负载。
  • WorkManager 可以在必要时取消和重试作业。例如: 用户可能会在作业运行期间关闭设备;系统可以 然后在设备恢复可用状态时重试作业。确保设计出 并测试您的工作流程,确保“取消并重试”循环正常进行 正确。

使用更具体的前台服务类型

如果您无法改用其他方式执行后台工作,您可能仍然会 需要使用前台服务。在这种情况下,您应该 服务类型来代替 dataSync。由于您的代码已在使用 前台服务,因此迁移过程非常简单;您只需选择 适当的前台服务类型,并确保你的应用满足 服务要求

与往常一样,在考虑使用前台服务时,您应该 考虑是否有更适合您用途的备用 API 这种情况。

使用短服务前台服务

如果应用需要执行简短的关键任务,则会使用 shortService 前台 可能是最佳选择在以下情况中,shortService 前台服务可能适合:

  • 用户发起一项操作(比如将数据同步到服务器),并且您希望 以确保操作完成,即使用户立即将 应用在后台运行时
  • 将内存信息保存到永久性存储空间。
  • 加密或解密信息。

如需了解完整信息,请参阅 shortService 文档

使用已连接的设备前台服务

如果您需要将数据传输到其他本地设备,则可能需要使用 connectedDevice 前台服务。以下是一些常见的情况 您可能需要执行此操作:

  • 与蓝牙配件(例如耳机或智能手表)通信
  • 通过 USB 连接、NFC、 或本地互联网连接

不过,在这些情况下,您或许可以使用配套设备 管理器来与设备连接,而不是使用前台服务。 与往常一样,如果某个特殊用途的 API 适用于您的用例,那就是 这通常是比使用前台服务更好的选择。

使用新的媒体处理前台服务

如果您需要处理媒体数据,可以使用新的 mediaProcessing 前台服务。如果您的应用以 Android 为目标平台,则可以使用此服务类型 15 或更高版本。例如,如果 应用需要将媒体从一种格式转码为另一种格式,才能播放。对于 请参阅 媒体处理前台服务文档

其他资源

如需详细了解对前台服务的这项变更,请参阅以下内容 其他资源: