终止后重新启动iOS应用程序后的奇怪行为

终止后重新启动iOS应用程序后的奇怪行为,ios,background-process,httpserver,Ios,Background Process,Httpserver,我正在开发一个内部iOS应用程序,它要求HTTP服务器一直运行 为此,我使用一个后台任务使我的应用程序保持活动状态(在后台播放音频),然后启动HTTP服务器。这是我的AppDelegate中的代码 - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { bgTask = [[MyBackgroundTask alloc] i

我正在开发一个内部iOS应用程序,它要求HTTP服务器一直运行

为此,我使用一个后台任务使我的应用程序保持活动状态(在后台播放音频),然后启动HTTP服务器。这是我的
AppDelegate
中的代码

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    bgTask = [[MyBackgroundTask alloc] init];
    [bgTask startBackgroundTaskWithTarget:self selector:@selector(backgroundCallback:)];

    httpServer = [[HTTPServer alloc] init];
    httpServer.interface = @"localhost";    
    [httpServer setType:@"_http._tcp."];
    [httpServer setPort:8080];
    [httpServer start];
}
而且它工作得很好。。。差不多了

有时,在后台运行的应用程序会被终止。例如:

Jun 24 11:27:24 My-iPhone SpringBoard[43] <Warning>: Application 'UIKitApplication:com.test.MyApp[0x668d]' was killed by jetsam.
Jun 24 11:27:24我的iPhone SpringBoard[43]:应用程序“UIKitApplication:com.test.MyApp[0x668d]”被jetsam杀死。
很明显,HTTP服务器宕机了。但当我在此终止后重新启动应用程序时,HTTP服务器将无法启动!(在Safari中键入
localhost:8080
时,我看到一条错误消息)

我对终止合同没有问题,完全没关系。但是当我重新打开应用程序时,我希望我的HTTP服务器能够启动并运行。但为什么不这样呢

(请注意,如果我自己关闭应用程序,一切正常)。

可能:

准备好处理基于网络的套接字中的连接故障。当您的应用程序因多种原因暂停时,系统可能会中断套接字连接。只要您的基于套接字的代码为其他类型的网络故障(如信号丢失或网络转换)做好准备,这就不会导致任何异常问题。当应用程序恢复时,如果在使用套接字时遇到故障,只需重新建立连接即可


或任何其他原因,当尝试重新启动web服务器时,您会收到什么错误消息?它的地址可能已经在使用中了吗?没有错误消息!日志文件甚至说:
在端口8080上启动了HTTP服务器。
但我可以看到
后台回调
不再被调用(在正常情况下,它每2秒向控制台打印一次)。我不会单独重新启动web服务器。所有的工作都是通过
didfishlaunchingwithoptions
函数完成的。主要问题是我很难重现这个bug。Jetsam是否有任何方法可以终止该应用程序?