在iOS4下在后台继续长时间运行的进程

在iOS4下在后台继续长时间运行的进程,ios,Ios,我有一个使用ASIHTTP请求运行的上载队列。当用户按下主屏幕,应用程序进入后台时,我希望此操作继续。从文档中,我可以看到如何调用新任务以在后台运行,但无法完全看到如何标记已在运行的任务以继续运行。此示例为4.0之前的兼容性而括起来: UIApplication *app = [UIApplication sharedApplication]; if ([app respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandl

我有一个使用ASIHTTP请求运行的上载队列。当用户按下主屏幕,应用程序进入后台时,我希望此操作继续。从文档中,我可以看到如何调用新任务以在后台运行,但无法完全看到如何标记已在运行的任务以继续运行。

此示例为4.0之前的兼容性而括起来:

UIApplication *app = [UIApplication sharedApplication];
if ([app respondsToSelector:@selector(beginBackgroundTaskWithExpirationHandler:)]) {
    backgroundTaskIdentifier = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{
        dispatch_async(dispatch_get_main_queue(), ^{
            if (backgroundTaskIdentifier != UIBackgroundTaskInvalid)
            {
                // you took too long - clean up what you can, then …
                [app endBackgroundTask:backgroundTaskIdentifier];
                backgroundTaskIdentifier = UIBackgroundTaskInvalid;
            }
        });
    }];
}

// start HTTP request …

完成流程后,应调用
endBackgroundTask:
让应用程序知道

并尝试添加UIBackgroundTaskIdentifier\uu block backgroundTaskIdentifier;在这个街区前面。:)