对于VOIP应用程序,我们使用setKeepAliveTimeout每10分钟向服务器发送一次PING数据包,一切正常,但是我不确定一旦应用程序成为前台,如何阻止处理程序被调用。
例如:这是我设置超时的方式
[[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:^{ [self backgroundHandler]; }];
后台处理程序:
- (void)backgroundHandler
{
printf("10 minute time elapsed\n");
// do some action...
}
即使在应用程序出现在前台之后,上述函数也被调用,我已经阅读了Apple文档中的设置处理程序nil使其停止。我已经在applicationWillEnterForeground中尝试过如下
[UIApplication sharedApplication] setKeepAliveTimeout:600 handler:nil];
我还是每10分钟接到一次电话。如何处理,我是否只需要使用标志。
任何帮助都非常感谢。
最佳答案
您必须调用clearKeepAliveTimeout
来停止计时器。 setKeepAliveTimeout:
旨在保持voip连接,因此才定期调用它。
关于iphone - 停止在应用程序进入前台后调用setKeepAliveTimeout处理程序吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18606492/