我知道这似乎是一个重复的主题,但它不是(希望不是)
我们有一个应用程序在后台使用GameCenter进行后端通信,直到ios8,GameCenter在后台运行良好。
现在我需要找到一个解决方案,关键是应用程序需要在后台持续运行,它使用GameCenter聊天服务器等,所以我们启用了音频。我看不到我们能够使用VOIP作为选项(Apple可能会拒绝它)
我试过
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
[application setKeepAliveTimeout:600 handler: ^{
[self performSelectorOnMainThread:@selector(keepAlive) withObject:nil waitUntilDone:YES];
//[[GCHelper sharedInstance] applicationWentBackground];
}];
- (void)keepAlive {
self.bgTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
NSLog(@"Background handler called. Not running background tasks anymore.");
// [[UIApplication sharedApplication] endBackgroundTask:self.bgTask];
// self.bgTask = UIBackgroundTaskInvalid;
[self keepAlive];
}];
}
这让它保持了一点,我想主要的问题是,它现在是否可能?
我也遵循了这个指南
http://blog.dkaminsky.info/2013/01/27/keep-your-ios-app-running-in-background-forever/
答案 0 :(得分:1)
只要应用程序本身位于前台,您就可以每隔xx秒触发一次处理后台任务的通知。
当完整的应用程序进入后台时,您只有有限的时间来关闭操作。