我有一个使用ASIHTTP请求运行的上传队列。当用户按下主屏幕并且应用程序进入后台时,我希望此操作继续。从文档中我可以看到我如何调用一个新任务可以调用在后台运行,但是不能完全看到我将如何标记已经运行的任务继续。
答案 0 :(得分:2)
此示例包含在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:
让应用知道