1

我想知道当应用程序在后台时是否可以发送异步连接。这样做的原因是因为我需要发送用户的位置(从核心位置获取)以在每次位置更改时更新远程服务器中的数据库,即使应用程序不在前台也是如此。

我必须为此设置任何权限吗?当应用程序处于后台时,Apple 是否会拒绝应用程序处理连接?

提前致谢!!

4

2 回答 2

4

iOS 提供多任务 API,即即使您的应用程序在后台,也可以访问它的一些 API。这些服务是——

  1. 本地通知
  2. 背景音频
  3. 后台任务
  4. 背景位置

因此,您绝对可以CoreLocation在应用程序不在前台时发送位置更新。

此链接 - iOS 多任务处理具有在后台应用程序时启动您的服务的代码。分步说明

  • 指定位置背景模式
  • 通过使用NSTimer在后台使用UIApplication:beginBackgroundTaskWithExpirationHandler:
  • 如果x时间小于UIApplication:backgroundTimeRemaining它的工作正常,如果x时间较大,则应在没有剩余时间之前再次启用(和禁用)位置管理器以避免后台任务被杀死。这确实有效,因为 location 是三种允许的后台执行类型之一。

SOURCE -如何在我的 iOS 应用程序中每 n 分钟更新一次后台位置?

于 2012-12-06T16:18:09.170 回答
0

在这里,来自苹果文档(http://developer.apple.com/library/ios/#documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html#//apple_ref/doc/uid/TP40007072-CH4-SW47

有几种方法可以在后台跟踪用户的位置,其中大多数实际上并不需要您的应用程序在后台连续运行:

- 重大变化的定位服务(推荐)

- 仅前台定位服务

-后台定位服务

但是您不能发送请求,因为唯一可能要做的事情是:-audio -location -voip -newsstand -Accessories & blutooth connection

所以我想你可以存储你所有的位置,并在应用程序再次进入前台后使用 NSURLConnection 发送它

于 2012-12-06T16:26:05.207 回答