iOS 7 +,8(最后一个尚未发布,但针对它)。 该应用程序。 作为用户,我启动应用程序并切换到其他应用程序(邮件,野生动物园等),让应用程序运行但不是前台应用程序。 该应用程序通过Internet建立与服务器的HTTP连接,并开始定期向服务器发送GPS位置数据(有一定的间隔)。
应用程序不在前台时是否可以?我的意思是,在使用其他应用程序时,是否可以获取地理定位数据并定期通过HTTP POST将其从应用程序发送到服务器?
如果答案是"是",请帮助我参考。我会进一步调查。
答案 0 :(得分:1)
是的,您要研究的方法是performFetchWithCompletionHandler:
如果您的应用支持获取后台模式,请实施此方法。 当有机会下载数据时,系统会调用此数据 为您的应用提供下载所需数据的机会的方法。您的 这种方法的实现应该下载数据,做好准备 要使用的数据,并在completionHandler参数中调用该块。
调用此方法时,您的应用最长可达30秒 挂钟时间执行下载操作并调用 指定的完成处理程序块在实践中,您的应用应该致电 下载后尽快完成处理程序块 需要的数据。如果你没有及时调用完成处理程序,那么你的 应用已终止。更重要的是,系统使用经过的时间 计算应用程序背景的功耗和数据成本 下载。如果您的应用需要很长时间才能完成调用 处理程序,可能会获得更少的未来获取数据的机会 未来。有关支持后台提取的更多信息 操作,请参阅iOS App Programming中的“App States and Multitasking” 指南。
答案 1 :(得分:0)
就像迈克提到的那样,你应该研究后台获取。有关详情,请查看此objc.io post。
您需要的信息应该在后台提取部分。