iOS 中的 NSURLConnection 和多任务处理

发布于 2024-10-05 00:48:18 字数 299 浏览 2 评论 0原文

我正在使用 NSURLConnection 在 iOS 中异步下载资源。 (它们是大型 PDF 文件,因此在连接速度较慢时需要一些时间。)

现在我正在将我的应用程序从 iOS 3 更新到 iOS 4。由于我的应用程序不支持位置感知、VoIP 和背景音乐,我想我需要做点什么。

那么我的问题是,当前运行的 NSURLConnection 会发生什么情况?当应用程序返回前台时,它是暂停并神奇地恢复,还是直接被杀死?如果是后者,稍后自动恢复的标准策略是什么? NSURLConnection 是否有一个开源子类可以自动执行此操作?

I'm using NSURLConnection to download resources asynchronously in iOS. (They are large-ish PDF files, so it takes some time on a slow connection.)

Now I'm updating my app from iOS 3 to iOS 4. As my app is none of location-aware, voip, and background music, I guess I need to do something.

My question is, then, what happens to the NSURLConnection currently running? Is it suspended and magically resumed when the app comes back to the foreground, or is it outright killed? If it is the latter, what is the standard strategy to resume it automatically later? Is there a open-source subclass of NSURLConnection which automatically does that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我三岁 2024-10-12 00:48:18

您可以启动最多运行 10 分钟的任务。查看使用 beginBackgroundTaskWithExpirationHandler: API 来实现此目的。请注意,如果您的任务花费太长时间,它将被操作系统终止。

You can start a task that will run for at most 10 minutes. Look at using the beginBackgroundTaskWithExpirationHandler: API for this purpose. Just be aware, if your task takes too long, it will be killed by the OS.

何必那么矫情 2024-10-12 00:48:18

NSURLConnection 确实被挂起并在应用程序进入前台时再次启动。只要确保在应用程序从挂起状态变为不运行状态时终止连接,如下所示:

- (void)applicationWillTerminate:(UIApplication *)application {
    if (self.downloadConnection != nil){
        [self.downloadConnection cancel];
    }
}

The NSURLConnection is indeed suspended and started again when the app enters the foreground. Just make sure you kill the connection if the app moves from suspended to not running like so:

- (void)applicationWillTerminate:(UIApplication *)application {
    if (self.downloadConnection != nil){
        [self.downloadConnection cancel];
    }
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文