用于重复性后台工作的警报管理器或工作管理器

Alarm Manager or Work Manager for Recurring Background Work

我无法决定是否 运行 使用警报管理器或工作管理器进行一些重复性后台工作:

这主要取决于您的任务的重要性。

https://developer.android.com/guide/background 是一个非常好的切入点,可以帮助您选择您应该使用的对象。

WorkManager 是处理后台工作的现代通用方法,适合大多数 use-cases,它会在设备重启或应用程序崩溃后自动重新安排工作,并且在电池使用方面非常高效.

由于 WorkManager 尊重 Android 的休眠模式,它不保证工作会准时完成,但它确实保证您的工作会在特定时间范围内完成.

另一方面,AlarmManager 能够运行 准时准确地工作。但这意味着设备将在您使用 AlarmManager 安排的工作到期时唤醒。这会耗尽电池电量,您的应用可能会在设备运行状况面板中显示为 battery-draining。

但如上文所述,尽可能使用 WorkManager。 AlarmManager 应该只用于例如time-sensitive 日历通知。

对于经常性的后台工作,AlarmManger 不适合。顾名思义,它的目的是在准确的时间通知系统一个事件。就像即使人睡着了也会叫醒人的物理闹钟一样,AlarmManager 会将设备从休眠模式唤醒,这将导致更多的电量使用。适用于设置余数之类的场合,比如用户可能自己设置的日历事件。

另一方面,WorkManager 旨在执行后台处理或持续存在的工作。 Workmanager 对于重复性任务效率更高,尤其是因为它允许您设置约束来确定何时开始或停止后台工作。

查看 link 形式的 WorkManger 官方文档: workmanager architecture tabular comparison between the two