我有一个一直运行的服务,我需要每天从我的服务器获取2次信息。我必须使用具有12Hs延迟的处理程序吗?还是报警?
你能告诉我什么是最好的选择吗?谢谢!
答案 0 :(得分:1)
AlarmManager专为完成此类任务而设计。它允许您设置Android将与其他任务分组的不准确警报,以最大限度地降低与唤醒设备相关的电池成本。如果你需要在一个精确的时间轮询服务器(它不能等到用户唤醒设备),那么你可以设置一个准确的警报,它将唤醒设备,然后你可以有一个方法,将自动化创建另一个准确警报,计划在12个小时后执行。
AlarmManager的缺点是,如果设备关闭然后重新打开,服务将不会自动重启。在这种情况下,您可以通过让BroadcastReceiver监听ACTION_BOOT_COMPLETE来解决它。 Android 5.0还提供JobScheduler API,可以通过系统重新启动来保留作业。
处理程序最适合用于短时间运行的进程。
答案 1 :(得分:0)
警报可能更好 - 如果应用程序因内存而被终止,警报仍将在系统中。处理程序不会。处理程序最好是短暂(几秒钟)延迟。