2010-09-28 66 views
6

在我的应用程序,我下载25MB左右+数据。期间,如果用户按下中间的按钮和应用进入后台应该做些什么,以便下载继续一旦应用涉及到前台继续下载被切换到后台

回答

2

你有一点点时间来存储,并决定做一些事情时,应用程序下载过程进入背景。我认为最好的办法是以某种方式关闭数据。

如果是文本数据,这将是很容易,只要打入许多小的文本文件,并记住你下载的是什么。

如果它包含大量的图片和视频,为您节省下载的图像或视频的最后一个(可能是指数)。

一般情况下,尝试将数据分手许多较小的,使得在一个休息不会影响其他部分,你可以重新下载的那部分。

+0

当用户选择该应用,如果应用程序来自于背景的前景,我总能找到显示相同的画面。在那种情况下,我认为下载操作将会恢复。我对么 ?。注意:我还没有在iPhone上测试过。 – thndrkiss 2010-09-28 13:39:40

+1

不,下载操作将不会恢复。您的下载连接已损坏,您必须通过您的代码重新启动它 – vodkhang 2010-09-28 14:52:11

+0

我有疑问。我只是试图从我的iphone 3gs手机4.0.2 os下载。它没有任何处理工作。我没有做任何处理,反之亦然。这是一个预期的行为? – thndrkiss 2010-09-29 19:25:51

3

退房的Executing Code in the Background部分的iOS应用程序编程指南中,它说:

它被暂停之前的任何时候,一个 应用程序可以调用 beginBackgroundTaskWithExpirationHandler: 方法向系统提供额外 时间在后台完成一些长期运行的 任务。

+0

我认为在这种情况下额外的时间是不够的,因为25+ MB的数据是如此之大 – vodkhang 2010-09-28 13:28:04

+1

这是可能的;我相信您获得的额外时间仅限于10分钟(在当前的操作系统版本中)。如vodkhang所说,将数据分解成小块是很好的建议。尽管如此,如果你想在后台继续至少一些下载,那么beginBackgroundTaskWithExpirationHandler:很重要:通过调用它,你可以在用户点击主页按钮之后运行10分钟而不是10秒。 – 2010-09-28 14:22:46

+0

我没有测试10分钟。这是一个很好的事实要知道。然后,我认为有可能,10分钟以上的25+ MB数据并不是那么多 – vodkhang 2010-09-28 14:53:18