即使ios app处于后台,也可以调用Web服务

时间:2014-09-25 19:38:37

标签: ios objective-c ios7

在我的应用程序中,我需要每15分钟记录一次用户状态。是否有可能应用程序处于后台(未被杀死)??

目前,我启用了后台位置更新。但是如何每15分钟打电话

3 个答案:

答案 0 :(得分:1)

虽然其他答案对于背景提取是正确的,但还有另一个背景选项叫做 VoIP ,Skype就像这样使用应用程序。在这种情况下,操作系统会更频繁地唤醒您的应用程序(即使每次 10分钟,如果我没记错的话),您可以继续在后台ping您的服务器。明显的缺点是您的应用必须具有IP语音功能,否则它将在App Store中被拒绝。

您需要做的就是添加调用setKeepAliveTimeout:handler:方法并在后台功能中启用voip

只是为了完成而添加它。

答案 1 :(得分:0)

您可能希望查看iOS7及更高版本中添加的后台抓取功能:

http://www.appcoda.com/ios7-background-fetch-programming/ https://developer.apple.com/library/ios/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html(搜索后台提取)

你将无法将时间间隔控制在15分钟,但你会发现这种机制是苹果最接近允许的。

答案 2 :(得分:0)

当您的应用处于后台模式时,无法以明确指定的时间间隔执行网络呼叫。您可以告诉您的应用使用后台提取

This article概述了您可以使用此API执行的功能。基本上,它允许您告诉iOS您的应用程序想要在后台执行网络呼叫,但是您无法准确控制将要执行的网络调用的时间和频率。 iOS将为您安排网络呼叫,并根据您的应用程序的使用方式,它将采用执行请求的频率。可以找到文档here