有人可以通过Alarm Manager向Android背景服务提供一些简介或更精细的细节吗?
他们有何不同?我应该在哪种情况下使用它们?
我正在开发一个需要定期从Web Service下载数据的应用程序。该应用程序具有很少的模块,每个模块具有不同的间隔时间段来下载/同步数据到Web服务。
让我们说 +模块A需要每15分钟同步一次 +模块B需要每1小时同步一次 +模块C需要每天同步 +模块D需要每周同步 +模块E需要每月同步
哪种方法更好?为什么?
此致
答案 0 :(得分:8)
警报管理器安排意图。您的服务可能会崩溃,如果内存不可用,可以将其删除。但是,如果您安排闹钟,则可以在闹钟时间调用您的特定服务。在您的上下文中,警报是比运行服务更好的选择。
希望它会对你有所帮助。
答案 1 :(得分:0)
在AlarmManager的帮助下,您可以安排意图。您的服务或BroadcastReceiver可以监听这些计划的意图并在给定时间执行任务。您不仅可以使用AlarmManager来实现程序逻辑。
您可以使用AlarmManager每15分钟发出一次意图,其中A动作,B每小时一次,依此类推。您的模块可以作为独立服务实现,也可以决定意图操作。
请记住,不应在BroadcastReceiver中执行长时间的操作。
答案 2 :(得分:0)
对此新博客帖子进行了很好的分析:https://android-developers.googleblog.com/2018/10/modern-background-execution-in-android.html?linkId=58286424
对于常规同步,您可能最终使用WorkManager,在特定时间启动或由推送消息(FCM)触发