如果有人为此做出机密答案,我将非常感激。尽管我已经阅读了更多关于此背景执行的文档,但在编写代码时我会遇到一些奇怪的行为。
我的应用程序支持后台模式(GPS),我可以看到位置更新定期打印在日志中。我有一个NSTimer运行,它将每1小时将位置更新发送到我的服务器。奇怪的是,计时器工作了很多个小时,突然停止了。
我脑子里有两个问题,即使我已经阅读了一些苹果文件,我也一直在问我。
1 - 是否可以使用计时器在后台/前台无限地运行任务?如果定时器不是选项,我可以用什么API无限地运行任务。
2 - 如果用户可以选择为我的应用禁用位置服务,我就不见了。我不希望用户为我的特定应用禁用位置服务。可以这样做吗?
请帮助!!!!
答案 0 :(得分:1)
我无法真正回答你的第一个问题,但请记住:你应该做“在后台运行时的最小工作。[...]花费太多时间在后台执行的应用程序可能会受到限制系统或杀死“(Source)。
您是否要求UIBackgroundMode:location
?如果没有,您只能在后台执行代码一段时间。
关于您的第二个问题:在获取用户位置之前,应用会询问用户有关权限的信息。此权限可以被拒绝,您将无法访问用户位置。即使授予了权限,用户也可以随时撤销权限。所以,是的,用户可以为您的应用禁用位置服务。