我们正在开发一个 VoIP 应用程序,当我的应用程序进入后台时,我一直在尝试使用 setKeepAliveTimeout:handler: 来保持连接有效。根据苹果文档,他们要求至少提供 600 秒的超时时间。实际上我们正在维护更少的超时值,是否可以处理更少的超时?
如果超时,如何使用处理程序重置计时器或请求更多时间,以便我可以始终保持连接(以接收传入调用)?
这是我正在做的...
- (void)applicationDidEnterBackground:(UIApplication *)application
{
BOOL backgroundAccepted = [[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{ [self backgroundHandler]; }];
if (backgroundAccepted)
{
NSLog(@"VOIP backgrounding accepted");
}
}
- (void)backgroundHandler {
NSLog(@"### -->VOIP backgrounding callback"); // What to do here to extend timeout?
}
最佳答案
来自 Apple的文档:
The minimum acceptable timeout value is 600 seconds.
编辑关于您的评论
VoIP 连接是(几乎)正常的连接。即,如果您有传入数据,您的应用程序将在后台恢复执行。超时处理程序适用于您 想要 ping 另一端以避免在那里超时的情况。更多信息提供 TN 2277 .
关于ios - 如何使用 setKeepAliveTimeout :handler - IOS?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15061232/