我正在使用NSURLConnection
进行互联网可用性检查,但无法调用成功或错误阻止:
- (void)isNetworkAvailableWithCallBack:(SuccessCallback)successBlock onFailure:(FailureCallback)failureBlock {
NSURL *URL = [NSURL URLWithString:@"http://www.google.com/"];
NSURLRequest *request = [NSURLRequest requestWithURL:URL];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue new] completionHandler:^(NSURLResponse *response, NSData __unused *data, NSError *error){
if (response != nil){
NSLog(@"Connected");
dispatch_async(dispatch_get_main_queue(), ^{
successBlock(YES);
});
} else {
dispatch_async(dispatch_get_main_queue(), ^{
failureBlock(YES);
});
NSLog(@"Not Connected");
[self presentError:error];
}
}];
}
当应用处于前台或第一次加载时,应用效果很好。当然,我的后台多任务处理已启用。发生以下情况时会发生此问题:
将应用程序发送给BG。 等一段时间...... 该应用程序被iOS杀死。
当我的应用程序再次从后台到前台时,将使用以下状态代码调用块:
Code=-1001
请求超时错误。但是为什么每当我的应用程序进入后台时都不会调用它(不是每次都发生,它运行正常)。
我的代码有什么问题吗?以及我如何处理这个问题。?
答案 0 :(得分:0)
您需要在功能中启用“项目背景模式”。
请参阅随附的屏幕截图