如果应用程序在NSURLConnection异步请求返回之前休眠或死亡怎么办



当一个NSURLConnection异步请求返回时,如果一个应用程序已经死亡、死亡、休眠或正在退出,会发生什么?

在我看来,我最好在我的异步函数假定程序数据是有效的之前,至少保持一个标志,说"程序正在退出"。

谢谢。

在iOS 4.0及以上版本中,当用户关闭应用程序时,它会进入暂停状态。除非你告诉它另做,否则委托回调不会触发,直到用户再次打开应用。你可以通过在回调中写一些nlog来测试自己。然后,在测试设备上运行应用程序,并在看到连接启动后尝试关闭应用程序。等待一段时间并重新打开应用程序(在Xcode中仍然"运行"),并观察委托回调被调用。

//somewhere just after you start the async connection
NSLog(@"Connection started..."); 
- (void)connection:(NSURLConnection *)connection didFailWithError:(NSError *)error {
NSLog(@"Connection failed with error - %@",error);
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSLog(@"D- Connection finished loading");
} 

如果你想让连接在用户关闭应用程序后继续运行,那么请阅读iOs应用程序编程指南中的"在后台执行代码"。

最新更新