HDd*_*per 4 sockets iphone background multitasking ios
即使应用程序在后台,我也想使用以下功能?
- (void)stream:(NSStream *)theStream handleEvent:(NSStreamEvent)streamEvent
{
case NSStreamEventHasBytesAvailable:
{ NSLog(@"Event:NSStreamEventHasBytesAvailable");
if (theStream == _inputStream) {
NSLog(@"NSStreamEventHasBytesAvailable: on Input Stream");
uint8_t buffer[1024];
int len;
while ([_inputStream hasBytesAvailable]) {
len = [_inputStream read:buffer maxLength:sizeof(buffer)];
if (len > 0) {
NSString *output = [[NSString alloc] initWithBytes:buffer length:len encoding:NSASCIIStringEncoding];
if (nil != output) {
NSLog(@"server said: %@", output);
// to get local notification I am calling below method.
[self scheduleNotification];
}
}
}
}
break;
}
Run Code Online (Sandbox Code Playgroud)
上面的代码在foreGround中完成.我已经在apple文档中给出了所有更改,以在后台模式中运行应用程序 - voip.我应该在AppDelegate方法中写什么?
- (void)applicationDidEnterBackground:(UIApplication *)application
{
}
Run Code Online (Sandbox Code Playgroud)
如何获取流:handleEvent在后台调用?
我刚才处理类似的问题.要记住几件重要的事情:
因此,如果这不是voip应用程序,您可能实际上想要使用远程通知直接提醒用户而不是显示本地通知.我想这是您的应用程序通过App Store验证的唯一方法.
无论如何,SO上的两个链接可以帮助您找到帮助:
我最终使用了voip(正如你所做的那样)并按照这里的建议播放静音音频循环 - 它有效.不确定这个静音音频循环是否仍然是必要的.
当iOS应用程序进入后台时,TCP和UDP(与多播)连接会发生什么
请务必阅读开发VoIP应用程序的技巧和技术说明TN2277:网络和多任务处理
| 归档时间: |
|
| 查看次数: |
15012 次 |
| 最近记录: |