【发布时间】:2012-12-06 16:13:15
【问题描述】:
我想知道当应用处于后台时是否可以发送异步连接。这样做的原因是因为我需要发送用户的位置(从核心位置获取)以在每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台。
我必须为此设置任何权限吗?当应用处于后台时,Apple 是否会拒绝应用处理连接?
提前致谢!!
【问题讨论】:
标签: objective-c ios core-location background-process multitasking
我想知道当应用处于后台时是否可以发送异步连接。这样做的原因是因为我需要发送用户的位置(从核心位置获取)以在每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台。
我必须为此设置任何权限吗?当应用处于后台时,Apple 是否会拒绝应用处理连接?
提前致谢!!
【问题讨论】:
标签: objective-c ios core-location background-process multitasking
iOS 提供多任务 API,即即使您的应用在后台,也可以访问其中的一些 API。这些服务是 -
因此,当应用不在前台时,您绝对可以使用CoreLocation 发送位置更新。
此链接 - iOS multitasking 具有在应用程序在后台启动服务的代码。分步说明
UIApplication:beginBackgroundTaskWithExpirationHandler: 在后台使用NSTimer
x 时间小于UIApplication:backgroundTimeRemaining,它确实可以正常工作,如果x 较大,则应在没有剩余时间之前再次启用(和禁用)位置管理器以避免后台任务被杀死。这确实有效,因为位置是三种允许的后台执行类型之一。来源 - How do I get a background location update every n minutes in my iOS application?
【讨论】:
有几种方法可以在后台跟踪用户的位置,其中大多数实际上并不需要您的应用在后台连续运行:
-显着变化的定位服务(推荐)
-仅前台定位服务
-后台定位服务
但是您不能发送请求,因为唯一可能要做的事情是: -声音的 -地点 -voip -报摊 - 配件和蓝牙连接
所以我猜你可以存储你所有的位置,并在应用程序再次进入前台时使用 NSURLConnection 发送它
【讨论】: