在我的应用程序中,我需要每15分钟记录一次用户状态。是否有可能应用程序处于后台(未被杀死)??
目前,我启用了后台位置更新。但是如何每15分钟打电话
答案 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。