我正在开发一个必须下载多个文件的应用程序。当应用程序在前台时我没有问题。
要在应用程序处于后台时继续下载,我使用以下代码(来自应用程序不活动时的 iOS 后台下载):
self.backgroundTask = [[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:^{ [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; }]; /* 这里是你下载的代码,比如getDataFromServer方法 */ [self getDataFromServer]; // 它的虚拟方法 /* 你下载的代码在这里结束 */ dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{ [[UIApplication sharedApplication] endBackgroundTask:self.backgroundTask]; self.backgroundTask = UIBackgroundTaskInvalid; });
在设备屏幕打开之前,此代码是可以的。但是当设备进入待机状态时,会发生一些事情并且下载停止。可能 ios 关闭了我的后台进程的活动互联网连接。
IOS 6 和 7 中是否有办法在待机期间保持连接处于活动状态?