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

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

  • 有没有一种方法可以避免我的应用程序在10分钟后被终止。在后台?我不会将我的应用程序提交到应用程序商店,因此允许所有操作(私有(private)框架,即使我不需要它也可以使用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];
        }
    }
    

    关于iphone - 如何使我的应用程序保留超过10分钟的时间。在后台?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9681418/

    10-10 23:45