WorkManager或AlarmManager进行每日请求,然后进行通知工作?

问题描述 投票:0回答:1

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

据我了解,AlarmManager最适合在精确的时间进行调度。但是如果没有网络,该作业将失败,我宁愿推迟执行该作业以遵守网络约束,也不愿执行失败。对于这种受限工作,并保证最终执行,WorkManager看起来是最佳解决方案,它使用具有初始延迟的OneTimeWorkRequest以便在正确的时间执行。

android alarmmanager android-workmanager
1个回答
0
投票

比较AlarmManager和WorkManager,WorkManager出于某些原因获胜:

1)从Kitkat开始的AlarmManager,操作系统可能会转移警报,以减少设备的唤醒时间,从而减少电池使用量。检查official documentation了解更多详细信息。

2)由于您不会为通知定义特定的时间,我的意思是在这里您不会在特定时间(例如3:00 PM)使用日历,请使用WorkManager,因为您在WorkManager中具有PeriodicWorkRequest。请注意,您不得让PeriodicWorkRequest少于15分钟。检查official documentation中的PeriodicWorkRequest

3)现在,WorkManager替换了后台作业,JobScheduler,Firebase JobDispatcher的所有API。

4)WorkManager与协同程序完美配合

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

快乐编码🤓

© www.soinside.com 2019 - 2024. All rights reserved.