5

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

1 回答 1

2

来自Apple的文档:

The minimum acceptable timeout value is 600 seconds.

编辑关于您的评论

VoIP 连接是(几乎)正常的连接。即,如果您有传入数据,您的应用程序将在后台恢复执行。超时处理程序适用于想要 ping 另一方以避免那里超时的情况。更多信息给出了 TN 2277

于 2013-02-25T09:59:30.137 回答