iphone - 如何让我的应用程序保持超过 10 分钟。在后台?

标签 iphone objective-c ipad background

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

  • 有限长度任务(10 分钟)
  • 位置更新
  • 网络电话
  • 音频

有没有办法让我的应用程序在 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/

相关文章:

iphone - 关于CSS视口(viewport)宽度/高度的问题

iphone - 将坐标从 iPhone 屏幕尺寸转换为 iPad 屏幕尺寸

ios - 要求允许在 iOS 应用程序中使用当前位置的警告窗​​口不会让用户有机会在 "don' t 允许“和 "OK"之间进行选择

ios - 模糊效果没有填满整个View

ios - 当 viewWillDisappear 时 NSOperationQueue cancelAllOperations 不起作用

ios - __weak 貌似保留了对象

html - ipad 上带有 div 的复选框标签不可点击

iphone - uinavigationcontroller后退按钮字体更改不太正确

iphone - 隐藏选项卡栏并在该位置添加工具栏

ios - UILabel 在 3.5 英寸 iPhone 4 屏幕上被截断?