closuresios应用程序后,如何让一个进程仍然运行

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

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

如果你的意思是:

是否有可能保持运行的代码,如果用户杀了我的应用程序?

那么答案是否定的

但是如果你的意思是:

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

那么你可以使用UIBackgroundTaskIdentifier(文档在这里 )。

这篇文章解释得很好

当您的应用程序处于后台时,您可以执行以下操作的限制: 后台执行和多任务处理

声明您的应用程序支持的后台任务

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

audio – 应用程序在后台播放可听内容给用户。 (此内容包括使用AirPlay播放audio或video内容。)

位置 – 即使在后台运行时,应用程序也能让用户了解自己的位置。

voip-该应用程序提供用户使用Internet连接拨打电话的function。

报亭内容 – 该应用程序是一个报亭应用程序,在后台下载和处理杂志或报纸内容。

外部附件 – 该应用程序与需要通过外部附件框架定期传递更新的硬件附件配合使用。

蓝牙中央 – 该应用程序与蓝牙配件,需要通过CoreBluetooth框架定期提供更新。

每个前面的值让系统知道你的应用程序应该在适当的时候被唤醒来响应相关的事件。 例如,开始播放音乐然后移动到背景的应用程序仍然需要执行时间来填充audio输出缓冲区。 包括audio密钥告诉系统框架,他们应该继续播放,并以适当的时间间隔对应用进行必要的callback。 如果应用程序不包含此键,应用程序移动到背景时,应用程序正在播放的任何audio将停止。

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