如果setKeepAliveTimeout方法设置15分钟,VOIP应用程序不能及时唤醒
我开发的应用程序应该每15分钟处理一些数据。 所以我添加了voip标志到plist文件中。 并使用900秒(15分钟)setKeepAliveTimeout。 还添加了处理某些数据的后台任务function。 处理数据最多需要10秒。
问题是,应用程序不及时醒来。 有时12分钟后,有时16分钟后等,但我需要15分钟。
如何解决以下问题?
iOS版本是5.0+
如果是iOS的具体请提供我官方参考苹果的API文件,这里提到。
setKeepAliveTimeout:handler:
不是通用的间隔调度程序。 它允许您设置提供的处理程序的调用之间的最大时间间隔。 该function的目的是帮助您保持连接不超时或落后于您的VOIP应用程序标准(例如在线/离开状态)。
所以第一个参数( timeout
)告诉iOS在不超过 15分钟的时间内调用你的处理程序。 如果操作系统决定在12分钟内备份一些周期,可能会调用您的处理程序。 或在7分钟,或15。
如果您需要对间隔进行更精细的控制,则应设置较小的超时窗口,并忽略对您不重要的调用。 但是调用仍然会很不规范。
总的来说,目前还没有办法让它按照精确的时间表来唤醒你的应用程序。 您必须遵守iOS有限的后台处理选项,所有这些选项都旨在为操作系统提供很多便利来pipe理所有进程中的整体优先级和资源需求。