我现在正在iPhone上开发一个应用程序。应用程序中有一个功能,我用它来定期从服务器端更新一些信息。
当我关闭应用程序时,是否有任何方法可以使更新过程保持运行(在内存中某处)?然后可以在重新启动应用程序时恢复信息?
答案 0 :(得分:2)
如果你的意思是:
如果用户杀了我的应用程序,是否可以继续运行代码?
然后答案是否。
但如果你的意思是:
当我的应用处于后台时,是否可以继续运行代码?
然后你可以使用UIBackgroundTaskIdentifier(文档here)。
This post很好地解释了
答案 1 :(得分:0)
当您的应用处于后台时,您可以执行以下操作的限制:Background Execution and Multitasking
声明应用程序支持的后台任务
必须由使用它们的应用程序事先声明对某些类型的后台执行的支持。应用程序使用其Info.plist文件声明对服务的支持。将UIBackgroundModes键添加到Info.plist文件,并将其值设置为包含以下一个或多个字符串的数组:
audio-该应用程序在后台播放用户的可听内容。 (此内容包括使用AirPlay播放音频或视频内容。)
位置 - 应用程序可让用户随时了解其位置,即使它在后台运行也是如此。
voip-该应用程序使用户能够使用Internet连接拨打电话。
报亭 - 内容 - 该应用程序是一个报亭应用程序,可在后台下载和处理杂志或报纸内容。external-accessory-该应用程序适用于需要通过外部附件框架定期提供更新的硬件附件。
bluetooth-central-该应用程序与蓝牙配件配合使用,需要通过CoreBluetooth框架定期提供更新。
前面的每个值都让系统知道应该在适当的时候唤醒您的应用以响应相关事件。例如,开始播放音乐然后移动到后台的应用程序仍然需要执行时间来填充音频输出缓冲区。包括音频键告诉系统框架他们应该继续播放并以适当的间隔对应用程序进行必要的回调。如果应用程序不包含此键,则当应用移动到后台时,应用播放的任何音频都会停止。
答案 2 :(得分:0)
尝试ASIHTTPRequest,他们有一个方法。