Ios 打开Safari时,运行HTTP Server的应用程序立即停止侦听请求

Ios 打开Safari时,运行HTTP Server的应用程序立即停止侦听请求,ios,objective-c,cfnetwork,Ios,Objective C,Cfnetwork,我已经使用CFNetwork在我的应用程序上实现了一个HTTP服务器 服务器在某个点启动,通过NSFileHandleConnectionAcceptedNotification侦听请求 如果在应用程序处于活动状态时发出请求,则该应用程序工作正常。 问题是当我从应用程序打开Safari以加载此服务器提供的页面时:应用程序转到后台并冻结。Safari似乎在等待响应,但只有当我返回应用程序时,响应才会出现。 在服务器切换到Safari并进入后台后,如何让服务器监听这些请求一段时间?或者,实现HTTP

我已经使用
CFNetwork
在我的应用程序上实现了一个HTTP服务器
服务器在某个点启动,通过
NSFileHandleConnectionAcceptedNotification
侦听请求
如果在应用程序处于活动状态时发出请求,则该应用程序工作正常。
问题是当我从应用程序打开Safari以加载此服务器提供的页面时:应用程序转到后台并冻结。Safari似乎在等待响应,但只有当我返回应用程序时,响应才会出现。

在服务器切换到Safari并进入后台后,如何让服务器监听这些请求一段时间?或者,实现HTTP服务器这样工作的最佳方式是什么?我只需要在Safari上打开页面然后停止运行就可以了。

我找到了一个非常简单的方法让它工作

当应用程序进入后台时,我正在创建后台任务

刚刚将以下代码添加到
ApplicationIdentinterBackground:

  __block UIBackgroundTaskIdentifier bgTask =
      [application beginBackgroundTaskWithExpirationHandler:^
  {
    dispatch_async(dispatch_get_main_queue(), ^
    {
      [application endBackgroundTask:bgTask];
      bgTask = UIBackgroundTaskInvalid;
    });
  }];

我想在iOS应用程序中实现一个(web)服务器,这对吗?如果是这样的话,对你来说,坏消息是,当应用程序在后台时,它将无法接受任何请求。iOS中的后台操作只能以非常有限的方式访问,响应HTTP请求不是功能的一部分。我真的不希望它在后台侦听请求。我只需要它来打开Safari的页面。我已经使用iOS 7进行了测试,效果很好。它切换到Safari,在实际进入后台之前有足够的时间响应请求。当我在另一台装有iOS 5的设备上尝试同样的操作时,该应用程序会在收到请求之前进入后台(它实际上有时会工作)。有没有办法将应用程序延迟到后台一秒钟,以便它能够接收请求?