我正在尝试为iPhone实现一个应该只是从网上下载一些内容的应用程序。这个下载非常大,所以我将下载作为后台任务实现,让用户有机会在下载时用手机做其他事情。我的问题是,如果用户按下锁定按钮(或者如果启动了自动锁定),则会调用appDelegate中的applicationWillResignActive:大约十秒后,下载将中止,因为手机没有进入后台并且只是保持不活动状态。
我的问题是我做错了什么?即使手机已锁定,我如何确保继续下载?
提前致谢。
答案 0 :(得分:0)
您需要使用后台任务块包围下载代码,如下所示:
UIApplication* app = [UIApplication sharedApplication];
UIBackgroundTaskIdentifier bgTask = [app beginBackgroundTaskWithExpirationHandler:^{
//here you need to finish what you are doing evven if you've not finished yet, otherwise your app will be killed
[app endBackgroundTask:bgTask];
}];
//here comes your downloading code
[app endBackgroundTask:bgTask];
这将给你10分钟(根据其他一些帖子)在后台执行代码......