WorkManager还是AlarmManager,用于日常请求后通知的工作?

本教程将介绍WorkManager还是AlarmManager,用于日常请求后通知的工作?的处理方法,这篇教程是从别的地方看到的,然后加了一些国外程序员的疑问与解答,希望能对你有所帮助,好了,下面开始学习吧。

WorkManager还是AlarmManager,用于日常请求后通知的工作? 教程 第1张

问题描述

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

据我所知,AlarmManager最适合在精确的时间进行调度。但如果没有网络,作业将失败,我更希望作业被推迟以尊重网络约束,而不是在执行时失败。对于这类受限制的工作,在保证最终执行的情况下,WorkManager看起来是最佳解决方案,它使用具有初始延迟的OneTimeWorkRequest,以便在正确的时间执行。

推荐答案

比较报警管理器和工作管理器,工作管理器胜出的原因如下:

1)AlarmManager从Kitkat开始,操作系统可以移动警报,以减少设备的唤醒时间,从而减少电池使用量。
有关更多详细信息,请查看official documentation。

2)由于您不会为通知定义特定的时间,我的意思是,您不会在特定时间使用日历,可能是下午3:00,请使用WorkManager,因为您在WorkManager中有PeriodicWorkRequest.
请注意,您的PeriodicWorkRequest值不能少于15分钟。
检查official documentation中的PeriodicWorkRequest

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

4)WorkManager与协程完美配合

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

快乐编码?

好了关于WorkManager还是AlarmManager,用于日常请求后通知的工作?的教程就到这里就结束了,希望趣模板源码网找到的这篇技术文章能帮助到大家,更多技术教程可以在站内搜索。