2012-07-21 85 views
0

我现在正在iPhone上开发应用程序。我使用它在应用程序中定期从服务器端更新一些信息。如何让关闭ios应用程序后仍然运行

当我关闭应用程序时,是否有任何方法来保持更新过程在内存中运行(某处在内存中)?然后当我重新启动应用程序时可以恢复信息?

回答

2

如果你的意思是:

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

那么答案是

但是,如果你的意思是:

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

然后你可以使用UIBackgroundTaskIdentifier(文档here)。

This post解释它很好

0

有就当你的应用程序在后台,你可以做什么,从这个链接的限制:Background Execution and Multitasking

声明您的应用支持后台任务对于某些类型的后台执行的必须是

支持由使用它们的应用程序预先声明。应用程序使用Info.plist文件声明对服务的支持。将UIBackgroundModes项添加到Info.plist文件中,并将其值设置为包含以下一个或多个字符串的数组:

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

位置 - 即使应用程序在后台运行,应用程序仍会向用户通知其位置。

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

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

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

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

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

+0

10倍以上。u举报回复,但我的意思是,如果用户关闭应用程序,它变得所以它不是在后台运行,它没有吃午饭呢。它完全退出。有没有办法让应用程序不在午餐时保持更新过程运行? – 2012-07-21 09:36:38

+0

当应用程序进入挂起状态时,它将不能再执行任何代码,除了上述背景模式 - 音频,位置,voip等等。 – 2012-07-21 10:16:21

0

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

+0

您可以在后台完成当前正在运行的网络任务,但不能从后台启动新任务背景。 ASIHTTPRequest不再受作者的支持,并且他建议使用其他解决方案是有原因的。 – 2012-07-22 00:25:55

相关问题