WorkManager还是AlarmManager,用于日常请求后通知的工作? [英] WorkManager or AlarmManager for a daily request-then-notification work?

查看:47
本文介绍了WorkManager还是AlarmManager,用于日常请求后通知的工作?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

以下是用例:用户设置具有特定时间的每日通知。在指定的时间,发出获取某些数据的网络请求,然后使用检索到的数据显示通知。我不确定应该使用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,用于日常请求后通知的工作?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆