iOS App会在后台永远运行

时间:2013-10-08 14:04:24

标签: objective-c cocoa-touch ios7 background-process multitasking

我正在尝试更好地了解iOS背景中的应用行为。我有一个按钮,其中包含以下操作:

- (IBAction)createTask:(id)sender {


    for(int i = 0; i < 10000; ++i){
        NSURL *url = [NSURL URLWithString:@"http://agronigeria.com.ng/wp-content/uploads/2013/06/cocoa.jpg"];
        NSData *data = [NSData dataWithContentsOfURL:url];
        NSLog(@"Image number %d with size %lu", i, (unsigned long)[data length]);
        NSLog(@"Time before task is killed: %f", [[UIApplication sharedApplication] backgroundTimeRemaining]);
    } 
     

}

点击按钮后,我按下主页按钮,将应用程序发送到后台。我期待很快就会停止(没有特殊背景模式的应用程序的最长时间是什么,可以在后台运行,BTW?)。相反,它只是永远。 10分钟后我停了下来。即使backgroundTimeRemaining返回0,它也会继续。

发生了什么事?

PS我在安装了iOS 7的4S上运行它。

1 个答案:

答案 0 :(得分:0)

检查您是否具有以下功能

<强>应用:performFetchWithCompletionHandler

看似简单,但尝试添加此行或删除处理函数

[[UIApplication sharedApplication] setMinimumBackgroundFetchInterval:UIApplicationBackgroundFetchIntervalNever];