我遇到了从NSURLConnection sendAsynchronousRequest或AFHTTPRequestOperation接收任何完成处理程序回调的问题。我正在开发一个VoIP应用程序,它在后台或前台运行时工作正常。但是,当应用程序被操作系统杀死时会出现此问题,然后自动重启,因为它包含voip后台模式。
我的调查发现,这可能是由于线程退出或runloop已经停止,其中没有收到回调 - 我已经测试了sendSynchronousRequest并且接收到响应。
我的测试代码如下 - 未在应用程序自动重启上调用完成处理程序:
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:kAPIHost] cachePolicy:NSURLRequestReloadIgnoringLocalCacheData timeoutInterval:kHostTimeout];
[NSURLConnection sendAsynchronousRequest:request queue:[NSOperationQueue mainQueue] completionHandler:^(NSURLResponse *response, NSData *data, NSError *error)
{
NSHTTPURLResponse* httpResponse = (NSHTTPURLResponse*)response;
NSInteger code = [httpResponse statusCode];
NSLog(@"code %d", code);
}];
请详细说明这个问题,因为我可能没有正确调用sendAsynchronousRequest以便收到回调?
如果用户点击应用程序打开它,网络请求会起作用,这很奇怪。 谢谢你的帮助