0

我现在正在 iPhone 上开发一个应用程序。应用程序中有一个功能,我用它来定期从服务器端更新一些信息。

当我关闭应用程序时,有什么方法可以让更新过程保持运行(在内存中的某个地方左右)?然后在我重新启动应用程序时可以恢复信息吗?

4

3 回答 3

2

如果你的意思是:

如果用户杀死我的应用程序,是否可以继续运行代码?

那么答案是否定的。

但如果你的意思是:

我的应用程序在后台时是否可以继续运行代码?

然后您可以使用 UIBackgroundTaskIdentifier(此处的文档)。

这篇文章解释得很好

于 2012-07-25T18:04:24.917 回答
0

当您的应用程序处于后台时,您可以执行的操作有一个限制,来自此链接:Background Execution and Multitasking

声明应用支持的后台任务

对某些类型的后台执行的支持必须由使用它们的应用程序提前声明。应用程序使用其 Info.plist 文件声明对服务的支持。将 UIBackgroundModes 键添加到 Info.plist 文件中,并将其值设置为包含以下一个或多个字符串的数组:

音频——应用程序在后台向用户播放可听内容。(此内容包括使用 AirPlay 的流式音频或视频内容。)

位置——应用程序让用户随时了解他们的位置,即使它在后台运行时也是如此。

voip——该应用程序使用户能够使用 Internet 连接拨打电话。

newsstand-content - 该应用程序是一个 Newsstand 应用程序,可在后台下载和处理杂志或报纸内容。

external-accessory - 该应用程序与需要通过外部附件框架定期提供更新的硬件附件一起使用。

bluetooth-central — 该应用程序与需要通过 CoreBluetooth 框架定期提供更新的蓝牙配件配合使用。

前面的每个值都让系统知道您的应用程序应该在适当的时间被唤醒以响应相关事件。例如,一个开始播放音乐然后移动到后台的应用程序仍然需要执行时间来填充音频输出缓冲区。包含音频键会告诉系统框架它们应该继续播放并以适当的时间间隔对应用程序进行必要的回调。如果应用程序不包含此键,则当应用程序移至后台时,应用程序正在播放的任何音频都会停止。

于 2012-07-21T08:15:10.720 回答
0

试试ASIHTTPRequest,他们有一个方法。

于 2012-07-21T10:32:02.333 回答