我想知道当应用程序处于后台时是否可以发送异步连接。这是因为我需要发送用户的位置(从核心位置获取),以便每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台。
我是否必须为此设置任何权限?当应用程序处于后台时,Apple会拒绝应用程序处理连接吗?
提前致谢!!
答案 0 :(得分:4)
iOS提供多任务API,即使您的应用程序处于后台,也可以访问其中的一些API。这些服务是 -
因此,当应用不在前台时,您绝对可以使用CoreLocation
发送位置更新。
此链接 - iOS multitasking包含在后台使用应用时启动服务的代码。分步说明
NSTimer
UIApplication:beginBackgroundTaskWithExpirationHandler:
x
时间小于UIApplication:backgroundTimeRemaining
,它确实可以正常工作,如果x
更大,则应该在没有时启用(并禁用)位置管理器剩余时间以避免后台任务被杀死。这确实有效,因为location是三种允许的后台执行类型之一。消息来源 - How do I get a background location update every n minutes in my iOS application?
答案 1 :(得分:0)
有几种方法可以在后台跟踪用户的位置,其中大部分都不需要您的应用在后台连续运行:
- 显着变化的位置服务(推荐)
- 仅限地面的位置服务
- 背景位置服务
但是您无法发送请求,因为唯一可能的事情是: -audio -地点 -voip -报摊 - 配件& blutooth连接
所以我猜你可以存储你所有的位置,并在应用程序再次进入前台后通过NSURLConnection发送它