4

在我的应用程序中,即使我的应用程序处于待机模式,我也会尝试获取新内容并使其保持最新状态。为此,我想使用新的多任务 iOS 7 功能。

首先,我通过在 Info.plist 中添加密钥fetch来启用后台获取。UIBackgroundModes

然后,我在 AppDelegate 中设置了最小后台获取间隔:

[app setMinimumBackgroundFetchInterval: UIApplicationBackgroundFetchIntervalMinimum]

最后实施:

(void) application : (UIApplication *)application performFetchWithCompletionHandler:(void(^) (UIBackgroundFetchResult))completionHandler 

现在我应该用它NSURLSession来实现我想做的事情: - 检查服务器上是否有新的图像文件 - 如果是,下载它 - 推送通知以通知用户新内容可用

我会尝试这样的事情performFetchWithCompletionHandler:

NSURLSession* session = [NSURLSession sessionWithConfiguration:[NSURLSessionConfiguration backgroundSessionConfiguration:@"download"]];
[session downloadTaskWithRequest:<#(NSURLRequest *)#> completionHandler:<#^(NSURL *location, NSURLResponse *response, NSError *error)completionHandler#>]

但我对 NSURLSession 不太满意。如果有人有示例代码可以使用它,我将很乐意尝试。

泰,佩比

4

2 回答 2

3

这里有示例代码: https ://developer.apple.com/downloads/index.action 下载 iOS_SimpleBackgroundTransfer 示例。

于 2013-09-13T11:29:23.280 回答
0

在您的 performFetchWithCompletionHandler: 中,使用 NSURLRequest/NSURLConnection 检查是否有新图像可用。

如果您确实有要下载的图像,请使用 backgroundSessionConfiguration 创建一个 NSURLSession 来下载图像。

于 2013-09-20T22:34:37.933 回答