WorkManager 或 AlarmManager 用于日常请求然后通知工作?

Ala*_*lan 5 android alarmmanager android-workmanager

这是用例:用户设置具有特定时间的每日通知。在指定时间,发出网络请求以获取一些数据,然后使用检索到的数据显示通知。我不确定是否应该使用 AlarmManager 还是 WorkManager 来实现这个用例。

据我了解,AlarmManager 最适合在精确的时间进行调度。但如果没有网络,作业就会失败,我更喜欢推迟作业以尊重网络限制,而不是执行失败。对于这种类型的受限工作,在保证最终执行的情况下,WorkManager 看起来是最好的解决方案,使用具有初始延迟的 OneTimeWorkRequest 以便在正确的时间执行。

Mus*_*led 5

比较 AlarmManager 和 WorkManager,WorkManager获胜的原因如下:

1) AlarmManager 从 Kitkat 开始,闹钟可能会被操作系统转移,以减少设备的唤醒,从而减少电池的使用。查看官方文档了解更多详细信息。

2) 由于您不打算定义通知的具体时间,我的意思是您不会在特定时间(可能是下午 3:00)使用 Calender,而使用 WorkManager,因为 WorkManager 中有PeriodicWorkRequest。请注意,您不得将PeriodicWorkRequest 设置为少于15 分钟。查看官方文档中的PeriodicWorkRequest

3) WorkManager 现在取代了后台作业、JobScheduler、Firebase JobDispatcher 的所有 API。

4)WorkManager与协程完美配合

这是我的拙见,如果您有任何疑问,请回复。

快乐编码