【发布时间】:2014-01-05 17:24:33
【问题描述】:
我创建了一个示例代码来重复从网络下载文件(每 30 秒左右)。在 iOS 7 中使用带有 NSURLSession 的后台传输服务
我跟着这个教程http://mobile.tutsplus.com/tutorials/iphone/ios-7-sdk-background-transfer-service/
并添加了一个这样的计时器来重复它。
[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil];
mute = [NSTimer scheduledTimerWithTimeInterval:30.0f
target:self
selector:@selector(startDownload)
userInfo:nil
repeats:YES];
[[NSRunLoop currentRunLoop] addTimer:mute forMode:NSRunLoopCommonModes];
当我在模拟器和连接到 Xcode 的 iPad 上运行它(通过单击主页按钮在后台运行)(我可以在其中看到日志)时,一切正常,并且不断下载。 但是,当我断开 iPad 与 Mac 的连接并在大约 3 秒后在 iPad 上在后台运行它时,它会停止运行(调用 AppDelegate 中的handleEventsForBackgroundURLSession)。
在 Xcode 项目功能中,我选择了 Background fetch 作为 Background Modes。
我在这里遗漏了什么,或者我做错了什么,导致它在大约 3 分钟后停止? (根据 iOS 7 后台传输服务的文档,它应该连续运行,因为后台没有时间限制。)
谢谢
【问题讨论】:
标签: ios objective-c ipad ios7