我们正在开发一个 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?
}