在我iOS
创建的XCode
应用中,我有一个主界面和一个函数委托:
- (BOOL)onUdpSocket:(AsyncUdpSocket *)sock didReceiveData:(NSData *)data withTag:(long)tag fromHost:(NSString *)host port:(UInt16)port
{
NSString *infoString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding];
return NO;
}
..我正在使用此功能来侦听传入的数据包。它首次按预期运行,但在设备锁定/解锁序列之后,即在applicationWillEnterForeground
呼叫之后,它似乎停止工作。
我该怎么称呼?
答案 0 :(得分:0)
很明显,您不会收到任何数据包,因为当您锁定设备时,应用程序进入后台模式,而在后台模式下,您的应用程序无法接收来自互联网的任何数据包。您的问题有两种解决方案:
您必须使用数据包确认方法维护客户端 - 服务器数据包的发送/接收。当应用程序到达后台时,您的应用程序将不会将ack发送到服务器,因此服务器知道在应用程序再次请求后发送数据。要让应用再次发送请求,请在applicationDidBecomeActive
。
此方法仅在您的应用具有以下类型时才有效 -
在这种情况下,您的应用即使在后台也可以发送/接收数据。有关详细信息,请查看此link