iPhone – 如何保持我的应用程序超过10分钟.在后台?

我知道在iOS中,后台应用程序只能运行

>有限长任务(10分钟)
>位置更新
> VoIP
>音频

我的申请是否有办法避免在10分钟后被终止.在后台?我不会将我的应用程序提交到应用程序商店,所以一切都被允许(私有框架,即使我不需要它也使用gps)我知道苹果不推荐这个,但它仅用于监控目的.我需要它没有限制地运行.

我探索了几种可能性,包括VoIP,但它每10分钟只给我30秒,这还不够.我也读过这篇文章:
iPhone – Backgrounding to poll for events
其中JackPearse指定了一种使用VoIP 30秒任务“恢复”10分钟有限长度任务的方法.但我不希望我的任务每10分钟开始和结束,它必须连续运行.
我也尝试了他的UPDATE2,但它对我不起作用.
我甚至尝试用GSEvent.type 2012拦截UIEvent,这似乎是结束我的后台任务的一个,但没有运气.奇怪的是,当我打开和调试Xcode时,我的后台任务永远不会结束,但是当我没有(仅测试模拟器)时,它会在10分钟后结束.

最佳答案 我已经尝试过某种方式(nsrunloop,* performselectoronmainthread *).当应用程序进入后台时,它在模拟器中运行良好(不在设备中,因为苹果有时会自动崩溃).

status是BOOL变量.

- (void)applicationDidEnterBackground:(UIApplication *)application {

    while (!**status**) {
        [[NSRunLoop mainRunLoop] runUntilDate:[NSDate dateWithTimeIntervalSinceNow:60.0]];
        [self goBackground];
    }
}
点赞