锁定屏幕时NSUrlConnection?

时间:2012-12-31 02:04:56

标签: ios background nsurlconnection

我在锁定屏幕时尝试了一些方法来执行NSURLConnection,但没有一种方法可以正常工作。

我尝试过如下:

[self performSelectorInBackground:@selector(startConnection) withObject:nil];

我也尝试过:

dispatch_queue_t request_queue = dispatch_queue_create("com.app.download", NULL);
dispatch_async(request_queue, ^{
  [self startConnection];
});
在startConnection中

- (void)startConnection{
  ... some URL processing

  responseData_ = [[NSMutableData alloc] init];
  connection_ =
  [[NSURLConnection alloc] initWithRequest:urlRequest delegate:self];
}

NSURLConnection委托方法不是通过这种方式调用的。 使其有效的真正代码是什么?谢谢!

可能有帮助的小更新

它只调用这个委托方法:

- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error 

带有消息:

  

找不到具有指定主机名的服务器。

我非常确定我的Wi-Fi是连接的,但仍然不确定为什么会被称为:(

1 个答案:

答案 0 :(得分:2)

如果您锁定屏幕,您的应用将变为后台模式,不是后台运行模式。 如果要在用户锁定屏幕时下载,则应检查此方法[UIApplication -beginBackgroundTaskWithExpirationHandler:]