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