当应用程序进入后台时,在前台执行的长时间运行任务将暂停

时间:2012-11-15 10:09:02

标签: objective-c ios background

当用户首次打开我的应用时,我需要先从服务器下载并安装一些内容,然后才能开始使用该应用。问题是,这需要大约5分钟的wifi,在此期间应用程序进入后台,下载暂停。

有没有办法:

  • 在我执行下载时阻止iOS应用进入后台
  • 或继续在后台执行任务(即执行任务,无论应用程序是在前台还是后台)

由于

3 个答案:

答案 0 :(得分:3)

这没关系,如果用户按下主页按钮,它将转到后台。虽然您可以做两件事来缓解这个问题:

  • 使用beginBackgroundTaskWithExpirationHandler,让您有更多时间下载。你可以阅读here
  • 请勿使用[UIApplication sharedApplication].idleTimerDisabled = YES;将设备变为谜语。您可以阅读有关here的更多信息。

无论哪种方式,你能做的最好的事情就是告诉用户,这是一个重要的下载,他不应该退出应用程序。

答案 1 :(得分:0)

您是否可以在应用套装中包含部分或全部内容,并在首次运行时下载更改?

我无法想象这是一个很好的第一次用户体验,它可能无法通过这样的App Store评论。

允许在后台下载的唯一第三方应用是加载问题内容的报刊应用,而Apple对报刊应用所允许的内容非常严格。

答案 2 :(得分:0)

在这种情况下,你不能做你想做的事。一种方式,我认为最好也是唯一的方法是在应用程序变为活动状态时恢复下载(返回到前景状态)。此外,不要忘记注册连接通知(可从此Apple示例应用程序http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html中使用可达性类用于此目的)。祝你好运!