我想知道当应用程序在后台时是否可以发送异步连接。这样做的原因是因为我需要发送用户的位置(从核心位置获取)以在每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台也是如此。
我必须为此设置任何权限吗?当应用程序处于后台时,Apple 是否会拒绝应用程序处理连接?
提前致谢!!
我想知道当应用程序在后台时是否可以发送异步连接。这样做的原因是因为我需要发送用户的位置(从核心位置获取)以在每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台也是如此。
我必须为此设置任何权限吗?当应用程序处于后台时,Apple 是否会拒绝应用程序处理连接?
提前致谢!!
iOS 提供多任务 API,即即使您的应用程序在后台,也可以访问它的一些 API。这些服务是——
因此,您绝对可以CoreLocation
在应用程序不在前台时发送位置更新。
此链接 - iOS 多任务处理具有在后台应用程序时启动您的服务的代码。分步说明
NSTimer
在后台使用UIApplication:beginBackgroundTaskWithExpirationHandler:
x
时间小于UIApplication:backgroundTimeRemaining
它的工作正常,如果x
时间较大,则应在没有剩余时间之前再次启用(和禁用)位置管理器以避免后台任务被杀死。这确实有效,因为 location 是三种允许的后台执行类型之一。SOURCE -如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?
有几种方法可以在后台跟踪用户的位置,其中大多数实际上并不需要您的应用程序在后台连续运行:
- 重大变化的定位服务(推荐)
- 仅前台定位服务
-后台定位服务
但是您不能发送请求,因为唯一可能要做的事情是:-audio -location -voip -newsstand -Accessories & blutooth connection
所以我想你可以存储你所有的位置,并在应用程序再次进入前台后使用 NSURLConnection 发送它