代码之家  ›  专栏  ›  技术社区  ›  Yuji

iOS中的网络连接和多任务处理

  •  7
  • Yuji  · 技术社区  · 14 年前

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

    现在我正在将我的应用程序从iOS 3升级到iOS 4。由于我的应用程序没有位置感知、voip和背景音乐,我想我需要做些什么。

    我的问题是,那么 当前正在运行?当应用程序回到前台时,它是被挂起并神奇地恢复,还是被彻底杀死了?如果是后者,以后自动恢复的标准策略是什么?有一个开源的子类吗 NSURLConnection公司 哪个会自动这么做?

    2 回复  |  直到 14 年前
        1
  •  1
  •   jer    14 年前

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

        2
  •  1
  •   marchinram    14 年前

    NSURLConnection确实被挂起,并在应用程序进入前台时再次启动。如果应用程序从挂起变为不运行,请确保断开连接:

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