我必须每24小时在凌晨2点更新我的应用程序中的数据。目前,我有一个Alarm通过AlarmManager发送告警每24小时与setRepeating方法。
在过去,我经历过一些不可靠的报警时间,所以我尝试使用intent-filter和Intent.ACTION_TIME_TICK.
我的问题:每24小时设置一次重复警报和使用从系统获取信息的意图过滤器有什么区别?
你绝对不应该对ACTION_TIME_TICK做任何事情。如果你尝试了,它也不可靠——它只会在你的应用程序运行时工作,如果你在后台,你会因为资源而被杀。这里的正确答案实际上是JobScheduler或WorkManager,这取决于您正在做的事情的性质。最有可能是WorkManager。然而,如果你担心警报时间的可靠性,你可能想错了你的问题。除非你有一个非常小众的用例,否则在下载夜间更新时出现一点不准确通常是可以接受的。事实上,将负载分散到服务器上可能是受欢迎的。你的dl时间不准确可能是由于打瞌睡,这是一个你的用例应该考虑的机制(打瞌睡是一个省电模式,它减少了屏幕关闭时定时事件运行的频率)。