0

如果有人对此做出分类回答,我将非常感激。尽管我已经阅读了更多有关此后台执行的文档,但当我在编码中实现这些时却遇到了奇怪的行为。

我的应用程序支持后台模式 (GPS),我可以看到位置更新定期打印在日志中。我有一个 NSTimer 正在运行,它将每 1 小时将位置更新发送到我的服务器。奇怪的是计时器工作了好几个小时,然后突然停止了。

我有两个问题一直在问我,尽管我已经阅读了一些苹果文件。

1 - 是否可以使用计时器在后台/前台无限运行任务?如果计时器不是选项,我可以使用什么 API 来无限运行任务。

2 - 如果用户可以选择为我的应用禁用定位服务,我就走了。我不希望用户为我的特定应用禁用定位服务。可以这样做吗?

请帮忙!!!!

4

1 回答 1

1

我无法真正回答您的第一个问题,但请记住:您应该“在后台运行时做最少的工作。[...] 在后台执行花费过多时间的应用程序可能会被系统限制或终止“(来源)。

你有要求UIBackgroundMode:location吗?如果没有,您只能在后台执行代码一段有限的时间。

关于您的第二个问题:在能够获取用户位置之前,应用程序会向用户询问权限。可以拒绝此权限,然后您将无权访问用户位置。即使权限被授予,用户也可以随时撤回权限。所以,是的,用户可以为您的应用禁用定位服务。

于 2012-05-11T07:14:22.173 回答