后台执行

时间:2010-12-13 13:05:38

标签: iphone cocoa cocoa-touch iphone-sdk-3.0

我在我的应用程序中执行与SMTP相关的应用程序,以发送邮件。在IOS 4中,音频,voip,location的后台执行异常。如何使用网络操作。

2 个答案:

答案 0 :(得分:2)

网络访问没有明确的例外。您可以在应用程序退出后请求额外的时间来完成任务,但是您无法创建在后台持续运行的守护进程。

答案 1 :(得分:0)

Apple提供600秒执行后台任务,您可以使用代码

 UIApplication *app = [UIApplication sharedApplication];
self.bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
    [app endBackgroundTask:bgTask];
    bgTask = UIBackgroundTaskInvalid;
}];

// Start the long-running task 
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{

     while (1) {
    NSLog(@"BGTime left: %f", [UIApplication sharedApplication].backgroundTimeRemaining);
    [self.viewController performSelector:@selector(invokeCuisineSelector)];
          sleep(1);
      }   
});